728x90
반응형

Kotlin 144

<백준> 동전 1(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EB%8F%99%EC%A0%84%201 [백준] https://www.acmicpc.net/problem/2293 익숙한 문제라고 생각하고 고민하는데도 안 풀리는 문제였다. 뭔가 어제 오늘 다 머리가 굳어있는 느낌이다. 어서 회복해야할텐데... 밥을 더 많이 먹어야겠다!! 이 문제는 보자마자 DP 문제겠거니 했다. 약간 거스름돈 문제가 생각나기도 했다. 그런데 접근이 안 되더라 1차원 배열을 써야할지, 2차원 배열을 써야할지 감이 잘 안 왔다. 내가 최대로 진행한 것은 각 동전을 리스트에 저장해놓은 것이다. 이렇게 해놔야지 각각 ..

<프로그래머스> 혼자 놀기의 달인(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%ED%98%BC%EC%9E%90%20%EB%86%80%EA%B8%B0%EC%9D%98%20%EB%8B%AC%EC%9D%B8 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/131130 주말 간의 피로를 잠으로 잘 풀고 눈 퉁퉁 부어 있는 상태에서 푸는 월요일 첫 문제는 문제 지문을 읽고 이해하는 게 제일 힘들었다. 안 그래도 머리가 안 돌아가는데 지문까지 기니까... 쉽지 않았다. 코드 작성 시간이랑 문제 읽는 시간이랑 삐까삐까 했던 거 같다. 이 문제는 간단하게 사이클 문제라고 볼 수 있었던 거 같다. 각각의 사이클을 이루는 ..

<프로그래머스> 미로 탈출(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EB%AF%B8%EB%A1%9C%20%ED%83%88%EC%B6%9C [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/159993 생각보다 쉽게 풀어낸 문제였다. 오랜만에 프로그래머스 문제를 푸는데 이 문제는 보자마자 BFS에 경로를 두 번 나눠야겠다는 생각이 빡! 들었다. 그래서 바로 코드로 생각을 풀어내기 시작했다. 가장 먼저 두 개의 큐에 시작 지점 좌표와 레버 좌표를 넣었다. 두 개의 큐인 이유는 시작 지점에서 레버, 레버에서 출구로 가는 BFS를 따로 돌릴 것이기 때문이다. 레버를 당기지 못하면 출구로 빠르게 가도 나갈..

<백준> 치킨 배달(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EC%B9%98%ED%82%A8%20%EB%B0%B0%EB%8B%AC [백준] https://www.acmicpc.net/problem/15686 요즘 백준 문제만 풀고 있는 거 같다. 이 문제는 처음 딱 보고 '풀 수 있을까?' 싶었지만 딱 방법이 떠오르고 나서는 한방에 통과했다. 걱정이 앞섰던 이유는 바로 문제가 좀 길었고 예제가 바로 이해가 안 되고 그냥 치킨 거리가 작은 거 말고 최대 치킨집 개수의 최소 치킨 거리를 구하라고 해서였다. 알고리즘 문제를 풀다보면 나오는 최대, 최소가 나를 불안하게 만들 때가 많았기에 그랬다...

<백준> 하노이 탑 이동 순서(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%ED%95%98%EB%85%B8%EC%9D%B4%20%ED%83%91%20%EC%9D%B4%EB%8F%99%20%EC%88%9C%EC%84%9C [백준] https://www.acmicpc.net/problem/11729 저번에 프로그래머스에서도 나왔던 문제였는데 거의 비슷하게 나와서 다시 복습하는 문제였다. 이제는 이 구조가 자연스럽게 손으로 나온다. n개를 옮기려고 할 때 n-1개를 먼저 다른 기둥에 옮겨놓고 1개를 옮긴다음 다른 기둥에 옮겨놓은 n-1개를 목표 기둥에 옮기는 것..!! 중간에 이동 경로를 저장하려면 n이 1일..

<백준> LCS(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/LCS [백준] https://www.acmicpc.net/problem/9251 개념을 잘 모를 때는 접근조차 힘들었지만 개념을 이해하고 나니까 매우 쉬운 문제였다. 다이나믹 프로그래밍을 이용해서 했다. 다이나믹 프로그래밍을 이용하지 않았다면 시간초과가 될 게 눈이 아른아른 보였기 때문이다. 한바퀴를 돌면서 값을 갱신시키는 방식이었는데 현재 인덱스에서 문자열의 값이 같은지 보고 이에 맞춰 코드를 수행하도록 짰다. 같을 때는 이전까지의 값에서 1을 더해줬다. 다를 때는 지금까지 오는 2가지 루트에서 큰 값을 저장했다. 현재 문제는 ..

<백준> 암호 만들기(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EC%95%94%ED%98%B8%20%EB%A7%8C%EB%93%A4%EA%B8%B0 [백준] https://www.acmicpc.net/problem/1759 정말 제출하고 많이 틀린 문제였다. 혼자 테스트하면서, 제출하고 나서를 합치면 8번...? 접근 자체는 쉽게 떠올랐다. '모음 따로, 자음 따로 개수를 골라서 넣지 말고 일단 총 문자에서 원하는 개수만큼 뽑은 다음에 모음의 개수와 자음의 개수를 확인하자!' 입력은 쉽게 받았고 입력값을 CharArray로 바꿔 바로 받기 위해 filter를 사용해봤다. 그리고 조합 합수를 ..

<백준> 토마토(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%ED%86%A0%EB%A7%88%ED%86%A0(7569) [백준] https://www.acmicpc.net/problem/7569 뭔가 익숙하다 했더니 이전에 쉬운 버전의 토마토 문제를 풀어본 적이 있더라 그런데 이름이 똑같아서 깃허브에 저장할 때 에러나고 순간 당황했다...ㅎ 그 문제와 다른 점은 상자가 높이를 가지는 3차원이라는 것과 2차원 상의 상하좌우말고 높이의 위아래도 체크해야한다는 것이었다. 입력이 가장 어려울 줄 알았는데 생각보다 쉽게 접근해서 해결했다. 그래도... Array는 익숙해지지 않는다. 지연초기화하고 ..

<백준> 적록색약(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EC%A0%81%EB%A1%9D%EC%83%89%EC%95%BD [백준] https://www.acmicpc.net/problem/10026 생각보다 쉬운 문제였다. 기본적인 BFS만 알고 있으면 거기에 조건만 추가하여 구현할 수 있다. 이번에 2차원 배열을 입력받아야 했는데 이번에는 또 저번과는 다르게 CharArray로 한줄을 변환하고 그걸 배열에 집어넣는 식으로 했다. 문자 하나하나 들어가야하는 2차원배열에서는 앞으로 이 방식을 사용해야겠다. 그리고 이제 함수들을 만들었다. 2차원 배열을 돌면서 시작점이 될 수 있는지 확인하..

<백준> 리모컨(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EB%A6%AC%EB%AA%A8%EC%BB%A8 [백준] https://www.acmicpc.net/problem/1107 정말 집에 리모컨이 있었다면 부셔버리고 싶었던 문제였다... 이전에 자바로 문제를 풀 때 한번 문제를 읽고 쉽지 않을 거 같아 그냥 넘겼던 문제인 거 같은데 이렇게 코틀린으로 마주 보니 똑같이 쉽지 않아 보였다. 처음에는 BFS인가 생각하다가 그렇게 되면 너무 경우의 수가 늘어나서 감당할 수 없을 거 같기도 하고 알고리즘 분류가 완전탐색으로 되어있어서 그쪽으로 생각을 틀었다. 그런데 어떻게 완전탐색을 해야하나..

반응형