본문 바로가기

분류 전체보기191

[C언어] 헷갈리는 증감 연산자(++a, a++) 차이 한 번에 이해하기 C언어를 공부하다 보면, 처음에 직면하게 되는 문제가 증감연산자(전위, 후위)이다. 그럴수록 많은 사례를 보는것 보다 하나의 원리를 파고들어 이해하는게 훨씬 효과적이다. 우선 큰 원리는 아래와 같다. (1) b = a++ b = a; a = a + 1; (해설) :a를 b에다 먼저 넣고 나중에 a를 1증가 시켜야 한다. (2) b = ++a; a = a + 1; b = a; (해설) :a를 먼저 증가 시키고 그 증가시킨 a를 b에다 넣는다 코드로 살펴보자 (1) 1 2 3 4 5 6 7 8 9 10 11 #include int main() { int a = 1; int b = 2; b = a++; // a = 2, b = 1 printf("%d %d\n", a, b); } cs 초기값 a = 1 , b .. 2021. 8. 17.
[programmers] 프로그래머스 Level3 네트워크(파이썬 Python) [programmers] 프로그래머스 Level3 네트워크 (파이썬 Python) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 * 왜 dfs를 이용했을까? - 일반적으로 노드에서 다음 노드로 넘어갈 노드를 찾기 위한 과정에서 쓰이는 탐색 기법은 dfs/bfs가 있다. 그 중 간선이 하나로 갈 때 경우만 보였기에 dfs를 이용하여 풀이 1) 문제 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 2) 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19.. 2021. 7. 31.
[programmers] 프로그래머스 Level3 단어 변환(파이썬 Python) [programmers] 프로그래머스 Level3 단어 변환 (파이썬 Python) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 * bfs를 이용한 문제이다. 우선 문제를 보고 왜 bfs를 떠올리게 되었는지 천천히 생각해보아야 한다. bfs/dfs의 문제의 유형이기 때문에 bfs 아니면 dfs가 아니라, 문제의 어느 부분을 통해 bfs/dfs를 떠올리게 되었는지 생각해나가며 풀어나가야 한다. 1) 문제 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 .. 2021. 7. 25.
[programmers] 프로그래머스 Level2 기능개발(파이썬 Python) [programmers] 프로그래머스 Level2 기능개발 (파이썬 Python) * 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제 progress[i] + speed[i] x day >= 100 day >= 100 - progress[i] / speed[i] 를 바탕으로 문제를 해결해나가면 된다. 1) 문제 프로그래머스 level2 기능개발 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 2) 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.. 2021. 7. 20.
[Java 자바] 코딩 테스트 입문자를 위한 static 개념 static에 대한 개념을 책으로 수백번 찾아 보는것보다는 코드로 이해하는게 100배 나았던 경험이 있다. 코드로 한번에 static 개념을 이해해보자. 우선 가져가야 하는 큰 개념은 아래와 같다. ``` 1) 온라인 컴파일러(Repl.it or 프로그래머스 에서 제공하는 컴파일러 등)가 시작 함수를 main class의 main method를 지정 해야 한다. 그렇기에, 초기 프로그램 실행 시 시작 함수 (main method)를 호출해야만 한다. 2) main method가 memory에 있어야 한다. (그래야 실행되니까) 3) memory(메모리)에 있으려면? -1) static으로 선언을 하거나 -2) new Class()(생성자 형태로) ``` 형태로 만들어야 한다. 이때 클래스이름이 무조건 M.. 2021. 7. 5.