728x90
반응형

Kotlin/Algorithm Problems 129

<프로그래머스> 모음 사전(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EB%AA%A8%EC%9D%8C%20%EC%82%AC%EC%A0%84 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/84512?language=kotlin 진짜 최근 들어 푼 것 중에 가장 오래 걸렸고 막상 정답 코드를 작성한 시간은 제일 짧았던 문제였다. 말이 안 되는 거 같지만 진짜로 그랬다... 처음에 이 문제를 딱 보고 든 생각은 '어쩌지...?' 였다. 방법이 생각이 난 게 아니라 걱정이 먼저 들더라 그래도 바로 펜과 종이를 가지고 적기 시작했다. 어느정도 루틴이 보이는 것 같자 이어서 조건문을 중첩했다.(?!) 왜인..

<프로그래머스> 주차 요금 계산(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EC%A3%BC%EC%B0%A8%20%EC%9A%94%EA%B8%88%20%EA%B3%84%EC%82%B0 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/92341 이렇게 문제 지문이 긴건 처음이었다... 읽기만 하는데도 약간 움찔했다. 그래도 문제 자체가 원하는 값은 심플해서 차근차근 순서를 세워 문제 풀이를 시작했다. 가장 처음에는 문제를 잘못 이해한 상태로 코드를 완성했다. 이게 무슨 소리냐면 문제에서는 '입/출차 내역을 바탕으로 차량별 누적 주차시간을 계산하여 요금을 구하시오.'라고 했는데 나는 입/출차가 이루어졌을 때..

<프로그래머스> k진수에서 소수 개수 구하기(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/k%EC%A7%84%EC%88%98%EC%97%90%EC%84%9C%20%EC%86%8C%EC%88%98%20%EA%B0%9C%EC%88%98%20%EA%B5%AC%ED%95%98%EA%B8%B0 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/92335 이 문제는 정말 간단하게 금방, 빨리, 스무스하고 기쁘게 해결할 수 있을 거 같았는데... 런타임에러와 시간초과 잡느라 생각보다 한참 걸렸다. 문제에서 가장 먼저 해야하는 것이 주어지는 숫자를 k진수로 바꾸는 거였는데 전이었으면 '아휴... 이걸 어떡하냐?' 했겠지만 toStir..

<프로그래머스> 타겟 넘버(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%ED%83%80%EA%B2%9F%20%EB%84%98%EB%B2%84 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/43165 문제를 보는데 다른 것보다 가장 먼저 눈에 들어온 건 좌측 상단에 써있는 '깊이/넓이 우선 탐색(DFS/BFS)'였다. '이제 올 것이 왔구나...!!' 이전에 C, C++, Java로 문제를 풀 때마다 내 마음을 무너지게 만들었던 큰 벽 중에 하나라서 떨렸다. 이건 아직도 완벽히 뚫지 못한 주제다... 코테에 자주 나오는 유형이라서 나름 푸는 시간을 많이 가졌어도 다양한 유형으로 인해 매번 새롭다. ..

<프로그래머스> 피로도(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%ED%94%BC%EB%A1%9C%EB%8F%84 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/87946 음... 점점 푸는 문제들이 실생활에서 써먹을 수 있는 느낌과 가까워지는 느낌이 든다. Lv.3 문제들에 진입하면 더 가까워지겠네...?! 이 문제는 보자마자 완전탐색과 순열이 생각났다. 최대 던전 수를 구해야하는데 던전 개수가 8개밖에 안된다. 다 돌라는 거다...!! 그래서 던전을 가는 방법에 대한 순열을 다 구해서 조건에 맞을 때를 계산하여 값을 구했다. 순열을 재귀로 구할 수 있는 건 알았지만 제대로 알고 있지는 못..

<프로그래머스> 프로세스(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/42587 처음에 문제 읽을 때 '우선순위가 높으면 1 아닌가?'라는 생각에 빠져 예시 이해 못하다가 반대라는 걸 알고 뻘쭘했다. 이 문제를 풀 때는 '우선순위를 어떻게 저장할 것인가'와 '우선순위를 어떻게 판별할 것인가', '결과로 원하는 프로세스의 위치를 어떻게 기억해놓을 것인가' 이 세가지가 주된 관심사였다. 우선순위를 저장하는 방식은 다른 생각하지 않고 ArrayDeque를 이용해 Queue의 역할을 했다. 왜..

<프로그래머스> 기능개발(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EA%B8%B0%EB%8A%A5%EA%B0%9C%EB%B0%9C [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/42586 문제 슬쩍 훑어봤을 때는 약간 무서웠다. 이해가 잘 안됐기 때문이다... 입출력 예시를 보면서 '뭐지...' 하다가 매일 총 배포되는 기능이 아니라 배포될 때 몇 개의 기능이 배포되는지가 요구하는 것이라는 걸 알아서 약간의 자신감이 생겼다. 가장 먼저 한 거는 예시를 손으로 직접 그려봤다. 기능들을 속도만큼 더하고 100이 넘으면 앞의 기능이 배포됐거나 가능한지 확인해서 한다...로 하지 않았다. 이렇게 하..

<프로그래머스> 의상(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EC%9D%98%EC%83%81 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/42578 후... 이 문제는 정말 내가 너무 복잡하게 생각했던 거 같다. 분명 경우의 수 문제이고 같은 의상 종류에 대한 처리만 어떻게 하면 쉽게 풀릴 거 같았다. 그런데 그 방법이 생각이 나지 않더라 그래서 했던 방법은 직접 써보는 거였다. 여러 예시들을 놓고 쓰면서 어떤 규칙성이 있나 해봤다. 그러다보니 조합으로 이어졌고 어떠한 규칙을 발견했다...! 문제는 그걸 코드로 구현하는게 더 어렵다는 거였다. 사람이 직접 하기에는 이해도 되고 응용도 ..

<프로그래머스> 할인 행사(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%ED%95%A0%EC%9D%B8%20%ED%96%89%EC%82%AC [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/131127 주말을 보내고 와서 머리가 약간 굳어져 있는 월요일 아침... 문제를 딱 보고 구해야하는게 뭔지 딱 알고 나서 번뜩 머리를 스쳐지나가는 것이 있었다. 'groupBy...!!' 전에 관련된 문제를 푼 적이 있었는데 groupBy 함수를 몰라서 여러 과정을 추가적으로 거쳤었던 게 기억에 남아 있었는지 바로 떠오르더라 그런데 생각보다 잘 진행이 되지 않았다. 첫번째로는 Map에 들어있는 값을 사용하는 것..

<프로그래머스> 행렬의 곱셈(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%ED%96%89%EB%A0%AC%EC%9D%98%20%EA%B3%B1%EC%85%88 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/12949?language=kotlin 이 문제는 그냥 너무 짧고 목적이 명확했다. 그리고 시간이 생각보다 걸렸다...?! 요즘에는 문제 푸는 시간이 좀 걸린다 싶으면 펜과 종이를 들고 막 적어본다. 테스트 케이스나 내가 생각하는 흐름 등을 적다보면 좀 정리가 되기 때문이다. 이 문제의 경우에는 3중 for문을 사용했기 때문에 이 범위가 저 범위인지가 헷갈려서 시간을 더 쓰게 됐다. 그래도 차근차..

반응형