728x90
반응형

Kotlin/Algorithm Problems 129

<백준> 1, 2, 3 더하기 4(Gold 5)

[백준] https://www.acmicpc.net/problem/15989 [깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/1,%202,%203%20%EB%8D%94%ED%95%98%EA%B8%B0%204 이 더하기 문제는 매번 볼 때마다 막히는 거 같다... 4번째 시리즈이길래 전에 다른 시리즈를 풀었나 확인해보니까 푼 것이 있었고 코드를 보는데 이해가 안 되더라...ㅎ 이번에는 잘 뚫기 위해 노력했는데 잘 기억하고 있어야겠다. 먼저 이런 문제는 어딘가 하나를 고정하는게 필요한 거 같다. 특히 이 문제는 1,2,3만을 사용할 수 있고 순서만 다른 수열은 같은 수열로 취급하기 ..

<백준> 달이 차오른다, 가자.(Gold 1)

[백준] https://www.acmicpc.net/problem/1194 [깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/%EB%8B%AC%EC%9D%B4%20%EC%B0%A8%EC%98%A4%EB%A5%B8%EB%8B%A4,%20%EA%B0%80%EC%9E%90. 최종 프로젝트가 마무리되고 드디어 다시 알고리즘 문제를 풀 여유가 생겼다. 물론 밀렸던 집안일 하랴... 이력서 준비하랴... 이것저것 하다보니 아침에 하려고 했던 일정이 망가져서 밤 늦게 하고 있지만 다시 손을 대서 할 수 있다는게 어디인가 싶다.(감사한 마음 뿐...) 그렇게 오늘 손을 댄 문제는 친구에게 추천받..

<프로그래머스> 가장 많이 받은 선물(Lv.1)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EA%B0%80%EC%9E%A5%20%EB%A7%8E%EC%9D%B4%20%EB%B0%9B%EC%9D%80%20%EC%84%A0%EB%AC%BC [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/258712 오늘도 복습을 하려다가 조금 뭔가 그래서 오늘부터는 카카오 코딩테스트 기출문제를 풀어보려고 한다. 가장 최근인 2024 KAKAO WINTER INTERNSHIP의 가장 쉬운 문제를 잡았다. 그리고 문제를 보는데 무슨 길이가...!! 사실 문제가 길다는 건 더욱 자세히 설명해준다는 것으로도 해석되기 때문에 문제를 푸는 과정이 ..

<프로그래머스> 24.02.21 복습

[예상 대진표 - 이전에 풀었던 방법] https://retry-thinksubox.tistory.com/5 이전에 풀 때는 최대 라운드를 sqrt를 가지고 정해놓고 그 안에서 다음 번호와 마치는 종료 조건을 구하는 식으로 했었다. 하지만 이렇게 할 필요가 없었다는 걸 오늘 알게 되었다. 왜냐하면 무조건 서로 붙게 된다는 조건 때문에 만나게 되어있기 때문이다. 여기서 가장 쉽게 해결하기 위해 필요한 아이디어는 현재 자리에서 +1을 하고 2로 나누면 다음 라운드에서의 자리라는 것과 붙게 되는 경우에 앞의 과정을 한 값이 서로 같다는 것이다. 간단하게 말하면 서로의 값이 같아질 때까지 +1를 하고 /2를 하는 걸 반복하다가 같아지면 탈출하고 걸린 횟수를 결과로 보내주는 것이다. 이전에 짰던 코드랑 비교를 해..

<프로그래머스> 24.02.20 복습

[카펫 - 이전에 풀었던 방법] https://retry-thinksubox.tistory.com/4 요즘 문제들이 너무 풀리지 않아서 다시 이전에 풀었던 문제들을 좀더 리마인드하고 다른 사람들의 풀이도 참고하며 코틀린 문법을 더 활용하는 시간을 가지기 위해 복습 시간을 가지기로 했다. 그 첫번째는 카펫 문제다. 이전에는 전체에서 외부 테두리의 개수를 사각형 형태에 맞을 때 비교하는 식으로 완전탐색을 진행해서 값을 구했었다. 그 과정 속에서 for문과 if문이 사용되었고 이해하기 쉬운 흐름이었다. 하지만 분명 내부 사각형을 이용하는 방법이 있을 거라는 생각을 했었다. 물론 그 방법을 떠올리지 못 해서 위의 방법으로 제출을 하고 마무리를 했었지만... 이번에 그 방법을 사용해 풀어보기로 했다. 흐름은 비슷..

<백준> N-Queen(Gold 4)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/N-Queen [백준] https://www.acmicpc.net/problem/9663 어떻게 하다보니 어제 풀었던 문제랑 동일한 문제를 풀게 되었다. 그런데 왜 이렇게 시간차이가 많이 나는지...? 이상했지만 보니까 백준은 14까지, 프로그래머스는 12까지였다. 거기에서 온 차이가 아닐까 싶다. 그래도 여기서 시간을 더 줄이기위해 노력한 부분은 분명히 있었다. 전에는 위쪽 대각선도 생각하고 처리를 했었는데 생각해보면 위에서부터 차례대로 내려오기 때문에 처리할 필요가 없었다. 이 부분 제거했고 첫번째 줄에 대한 처리도 재귀함수에 ..

<프로그래머스> N-Queen(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/N-Queen [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/12952 설날 연휴를 다 보내고 푸는 첫번째 문제 경우의 수를 따지는 문제라서 약간 포기할까라는 마음이 초반에 들었었지만 억누르고 계속 도전하다보니 뚫렸다. 푸는 방식은 숫자도 그리 크지 않고 한줄 한줄 체크하면 될 거 같아서 DFS를 사용했다. 먼저 첫번째 줄이 정해지면 나머지는 또 경우의 수에 맞춰서 진행하면 되기 때문에 첫번째 줄을 순회하며 재귀함수를 돌렸다. 들어가면 공격범위를 모두 체크하고 공격범위에 들어가지 않는 다음 줄의 칸에 퀸을 배치하고 다음 스텝으로..

<프로그래머스> 두 원 사이의 정수 쌍(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EB%91%90%20%EC%9B%90%20%EC%82%AC%EC%9D%B4%EC%9D%98%20%EC%A0%95%EC%88%98%20%EC%8C%8D [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/181187#qna 붙잡고 있다보니 해결된 문제였다. 그리고 나름 간단하게 풀었나 싶었지만 다른 사람들의 풀이를 통과하고 나서 보니까 아직 멀었었다. 문제를 보자마자 든 생각은 '할 수 있나...?' 였다. 왜냐하면 숫자가 1000000까지 있었고 일반적인 방법인 모두 체크하기를 해버리면 시간초과가 바로 날 것 같았기 때문이다. 그렇..

<백준> A와 B(Gold 5)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/baekjoon%20%EB%AC%B8%EC%A0%9C%EC%A7%91/A%EC%99%80%20B [백준] https://www.acmicpc.net/problem/12904 정말 한 번 뒤집어서 생각했더니 순식간에 풀린 문제였다. 처음에 문제를 보면서 드는 생각은 'DFS를 사용해서 두가지 연산을 다 사용하고 같은 길이가 되면 체크하는 방식으로 해야겠다...'였다. 하지만 이렇게 하면 최악의 경우에 1000*1000번도 돌지 않을까 싶더라 물론 시간제한 2초이기 때문에 시간초과는 아니다. 그래도 좀더 짧은 방법이 없을까 고민을 했다. 그러다가 번뜩 보인건 거꾸로 하자는 거였다. 문제는 분명 S에서 T..

<프로그래머스> 우박수열 정적분(Lv.2)

[깃허브] https://github.com/heesoo-park/ForCodeKata/tree/main/%EC%9A%B0%EB%B0%95%EC%88%98%EC%97%B4%20%EC%A0%95%EC%A0%81%EB%B6%84 [프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/134239 월요일 아침에 손 댄 문제이지만 생각보다 쉽게 해결한 문제였다. 정말 오랜만에 정적분을 봐서 많이 당황하기는 했지만 하나하나 쪼개서 하니까 괜찮았다.(사다리꼴 넓이 공식이 생각 안 나서 매우 당황했긴 했지만...) 가장 먼저 우박수열이 언제 1이 되는지 계산을 했다. 이건 재귀함수를 사용해서 간단하게 구현했다. 그렇게 얻은 값을 가지고 한 칸 한 칸의 ..

반응형