본문 바로가기

TIL152

220905 비가 너무 많이 와서 그런지 공부방에 가기 귀찮았지만 갔다. 이것이 코딩테스트다 문제들을 풀어보다가 dp, dfs/bfs, 최단 경로 구하는 이런 유형의 문제들이 부족한 것 같아서 프로그래머스에 유형 별로 모아져있는 문제들을 풀기로 했다. '두 개 뽑아서 더하기', '피보나치 수', '타겟 넘버' 문제들을 풀었다. '두 개 뽑아서 더하기'는 저번에 못 풀었다가 다시 풀어본 문제인데 이번에는 수월하게 풀려서 좋았다. 꾸준히 코테 연습을 했던 게 도움이 된것같다. '피보나치수'는 재귀로 풀어보니까 시간초과가 떴고 for문을 풀어서 해결했다. 그리고 새롭게 알게 된 점은 자료형의 크기에 제한이 있는 언어를 쓸 경우 (A + B) % C ≡ ( ( A % C ) + ( B % C) ) % C라는 성질을 이용해서.. 2022. 9. 6.
220904 이것이 코딩 테스트다 8장과 9장 문제들을 풀어가야해서 풀기 시작했는데 8장은 다이나믹 프로그래밍이고 9장은 최단경로 구하는 부분이었다.. 이 두 가지 유형이 제일 약한 부분이었기 때문에 시간이 오래 걸렸다. dp 문제는 '1로 만들기', '개미전사', '효율적인 화폐 구성'까지 풀었고 9장은 하나도 못 풀었는데 문제를 풀기 위해서 접근하는 방식을 잘 모르겠어서 헤맸던 것 같다. 잘 모르는 유형들 위주로 코테 연습을 해야겠다. 2022. 9. 5.
220902 늦잠을 자서 공부방에 나가지 말까 고민하다가 갔다. 역시 갈까말까할때는 가야된다,, '두 배열의 원소 교체' 문제를 두가지 방법으로 풀어볼 수 있었다. 첫번째 풀이를 했을때 두개의 테스트 케이스에서 시간초과가 났다. 재귀를 돌때마다 배열이 계속 정렬이 되어서 시간복잡도가 O((N+M) * K) 효율성을 고려하여 배열을 한번만 정리해서 시간복잡도가 O(1)이 되도록 하고 다시 풀어서 해결할 수 있었다. '떡복이 떡 만들기' 문제도 풀고 '부품 찾기' 문제도 풀었다. 부품 찾기 문제는 재귀로 풀어보려다가 익숙하지 않아서인지 잘 풀리지 않았다. 그래서 우선, for문을 사용했고 두번째 풀이로 이진 탐색과 재귀를 사용했다. 이 문제는 재귀가 유용하지 않다는 것을 알았고 세번째 풀이로 map을 사용했다. 이렇게 .. 2022. 9. 2.
220901 이것이 코딩테스트다 5장, 6장을 읽고 예제 문제들을 풀었다. '위에서 아래로' 문제는 sort를 사용해서 쉽게 해결했다. '성적이 낮은 순서로 학생 출력하기' 문제도 sort와 오브젝트를 사용해서 해결했다. '음료수 얼려먹기' 문제를 해결하려고 하는데 풀리지 않았다,,, 안되는 부분이 있으면 안되는 부분이 왜 안되는지 꼼꼼하게 분석해야겠다. 프로젝트에 테스트 코드를 도입했다. 아직 테스트코드 작성이 익숙하지 않아서 코드숨 강의를 다시 한번 봤다. 테스트코드 하나를 작성해봤는데 재밌다. 얼른 해야겠다. 2022. 9. 1.