전체 글
-
[알고리즘] 백준 17974번: 모든 순열 - C++알고리즘/백준 2020. 12. 12. 21:35
www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net #include #include using namespace std; int main() { int N; int *a; scanf("%d", &N); a = (int *)malloc(sizeof(int)*N); for (int i = 0; i < N; i++) { a[i] = i + 1; printf("%d ", a[i]); } printf("\n"); while (next_permutation(a, a + N)) { for (int i = 0; i < N; i++) { printf("%d ", a[..
-
[알고리즘] 백준 10972번: 다음순열 - C++알고리즘/백준 2020. 12. 12. 21:33
www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net #include #include using namespace std; int main() { int N; int *a; int i, j; scanf("%d", &N); a = (int *)malloc(sizeof(int)*N); for (int k = 0; k < N; k++) { scanf("%d", &a[k]); } i = N; while (i--) { if(i < 1) { printf("%d", --i); return 0; } else if (a[i - 1] < a..
-
[알고리즘] 백준 11723번 : 집합 - C++알고리즘/백준 2020. 12. 12. 21:30
www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net #include #include int main() { int m, x; char in[7]; int set = 0; scanf("%d", &m); while (m--) { scanf("%s", in); if (!strcmp(in, "add")) { scanf("%d", &x); x--; set = (set | (1
-
[디자인패턴] SOLID 원칙디자인패턴 2020. 12. 12. 20:33
SOLID 원칙 로버트 마틴이 명명한 객체지향 프로그래밍 및 설계 기본 5대 원칙 1. SRP (Single Responsibility principle; 단일 책임 원칙) 1) 정의 : 한 클래스는 하나의 책임만 가져야 한다. 2) 설명 로버트 마틴은 'Responsibility(책임)'을 '변경하려는 이유'로 정의 → 한 클래스는 변경하려는 단 하나 이유만을 가져야 한다. ex) 보고서를 편집하고 출력하는 모듈 이 모듈은 두 가지 이유로 변경될 수 있다. 첫 번째로 보고서의 내용 때문에 변경될 수 있다. 두 번째로 보고서의 형식 때문에 변경될 수 있다. 이 두가지 변경은 하나는 실질적이고 다른 하나는 꾸미기 위한 매우 다른 원인에 기인한다. → SRP에 의하면 이 문제의 두 측면이 실제로 분리된 두 ..
-
[책] 클린코더 The Clean Coder책/IT 2020. 12. 6. 15:47
클린 코더 The Clean Coder 국내도서 저자 : 로버트 마틴(Robert C. Martin) / 정희종역 출판 : 에이콘출판사 2016.07.20 상세보기 목차 더보기 1장. 프로의 마음가짐 함부로 바라지 마라 책임감을 가져라 무엇보다도 해를 끼치지 마라 직업 윤리 참고문헌 2장. 아니라고 말하기 반대하는 역할 손익관계가 높을 때 팀 플레이어 예라고 말하는 비용 훌륭한 코드는 불가능한가? 코드 코드 임파서블 3장. 예라고 말하기 약속을 뜻하는 말 예라고 말하는 법 익히기 결론 4장. 코딩 준비된 자세 몰입 영역 진퇴양난에 빠진 글쟁이 디버깅 속도 조절 일정을 못 지키다 도움 참고문헌 5장. 테스트 주도 개발 배심원 등장 TDD의 세 가지 법칙 TDD와 관련 없는 사실 참고문헌 6장. 연습 연습의..
-
DI (Dependency Injection) : 의존성 주입디자인패턴 2020. 12. 5. 23:51
1. 의존성 (Dependency) class Americano {...} class Programmer { private Americano americano; public Programmer() { this.americano = new Americano(); } public startProgramming() { this.americano.drink(); ... } } 1) Programmer 클래스는 Americano 클래스에 의존성을 가지고 있다. 새로운 Coffee 를 마시고 싶다면, Americano 클래스의 내용을 바꾸거나 새로운 클래스를 생성해서 작업해야 한다. class Americano implements Coffee {...} class Cappuccino implements Coffee..
-
Android Developer Roadmaps 2020Android 2020. 12. 5. 22:56
roadmap.sh/android Developer Roadmaps Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve. roadmap.sh 안드로이드 개발자를 위한 로드맵이다. 이번 개인 사이드 프로젝트를 통해 Language는 Kotlin, Version Control은 GitHub을 제대로 적용해봐야겠다. 추가로 Dagger로 DI(의존성 주입)을 하는 것과, RxJava에서도 좀더 공부..
-
[책] 모두의 네트워크 : 10일 만에 배우는 네트워크 기초책/IT 2020. 12. 5. 22:26
'모두의 네트워크' 링크 >>모두의 네트워크국내도서저자 : 미즈구치 카츠야 / 이승룡역출판 : 길벗 2018.06.30상세보기 목차네트워크 첫걸음네트워크의 기본 규칙물리 계층: 데이터를 전기 신호로 변환하기데이터 링크 계층: 랜에서 데이터 전송하기네트워크 계층: 목적지에 데이터 전달하기전송 계층: 신뢰할 수 있는 데이터 전송하기응용 계층: 애플리케이션에 데이터 전송하기네트워크의 전체 흐름 살펴보기무선 랜 이해하기리뷰학부 때 무선통신 수업에서 배우긴 했었는데, 사실 그냥 내용도 어려운데 심지어 영어강의여서 제대로 이해도 못한 채로 졸업해버렸다ㅠㅠ네트워크는 정말 중요한 전공인데.. 항상 다시 공부해야지, 해야지 하면서 지금까지 지나가버렸다.. 마침 '모두의 네트워크'라는 가볍게 읽기 좋은 이 책을 추천받아서..