호우동의 개발일지

Today :

article thumbnail
[Java/C++] 프로그래머스 Level 2 - 아날로그 시계 (PCCP 기출문제 3번)
Algorithm/Programmers 2023. 12. 12. 17:38

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/250135 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 자체는 되게 간단했는데, 풀려면 수학적인 계산이 좀 필요했다. 솔직히 설명 없이 코드만 적혀있으면, 왜 이렇게 풀었는지 전혀 모를 거 같다. 썸네일 더보기 문제 핵심 및 풀이 각도의 관점으로 접근 이 문제에서 바라는 것은, 초침이 각각 시침과 분침과 겹치는지를 판단하는 것이다. 이를 알아내기 위해서는 어떻게 해야 할까? 특정 시간만으로 판단할 순 없다. 왜냐하면 초침이 움직..

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 수레 움직이기 (PCCP 기출문제 4번)
Algorithm/Programmers 2023. 12. 6. 15:05

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/250134 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최근에 나온 따끈따끈한 문제. 생각할 경우의 수가 많다 보니까, 빡구현 문제에 속하는 것 같다. 1시간 제 한 시간 안에는 푸는 것에는 실패했지만, 인터넷 도움 없이 스스로 풀어냈다. 문제 핵심 및 풀이 제한사항을 통해 유형 파악 제한사항을 통해 문제의 유형을 파악하는 것이 첫 번째 관문이라고 생각한다. N x M 맵의 최대 크기를 살펴보면, 아무리 커봤자 4 x 4 가 최대 크기이다..

[Java/C++] 프로그래머스 Level 2 - 석유 시추(PCCP 기출문제 2번)
Algorithm/Programmers 2023. 12. 1. 19:48

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr PCCP가 뭔진 모르겠는데, 갑자기 이와 관련된 기출문제가 많이 뜨더라. 그래서 하나 풀어봤다. 문제 이해 자체는 간단하고, 범위도 그렇게 넓지 않아서 쉽게 풀릴 줄 알았다. 근데 시간초과가 떠서 좀 애먹었다. 문제 핵심 및 풀이 석유 그룹화 해당 문제의 핵심은 상하좌우로 연결되어 있는 석유를 하나의 덩어리로 보는 것이다. 이는 land [][]의 값이 1인 곳부터 시작하여, 상화좌우..

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 공 이동 시뮬레이션
Algorithm/Programmers 2023. 11. 28. 19:47

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/87391?language=java 오랜만에 풀어본 프로그래머스 Level 3 문제. 1시간 제한시간을 두고 풀었는데, 로직만 생각하다가 결국에 실패했다. 끝나고도 천천히 고민해 봤지만 마땅히 답이 떠오르지 않아, 여러 정보를 참고해 봤다. 개인적으로 이 문제는 수학적인 센스를 요구하는 문제인 것 같다. 어떻게 이런 생각을 하지.. 문제 핵심 및 풀이 문제 제한 사항 잘 파악하기 문제만 읽어보면 단순한 BFS 혹은 완전 탐색 시뮬레이션이라고 생각하기 쉽다. 하지만 제한사항을 보면 절대 그렇지 않은 것을 확인할 수 있다. n과 m의 범위, 그러니까 행과 열의 개수가 모두 10^9까지 가능하다...

article thumbnail
[Java/C++] 프로그래머스 Level 2 - 빛의 사이클 경로
Algorithm/Programmers 2023. 11. 26. 12:43

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/86052 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답률이 왜 이렇게 낮나 했더니, 문제 이해하기가 난해했다. 진짜 친구랑 둘이서 푸는데, 문제 해석으로 토론할 줄은 몰랐지.. 솔직히 깔끔한 문제는 아니었다고 생각했다. 문제 핵심 및 풀이 '빛의 경로 사이클'에 대한 정의 이 문제의 핵심이자 가장 애매했던 부분이다. 문제에서는 빛의 경로 사이클을 "빛이 이동하는 순환 경로를 의미"한다고 정의했다. 진짜 딱 이 한 문장이라 나머지는 예제..

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 미로 탈출 명령어
Algorithm/Programmers 2023. 9. 22. 15:10

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150365 [2023 KAKAO BLIND RECRUITMENT]에 나왔던 문제. 카카오의 최신 출제 트렌드를 파악하지 못한 나의 잘못이 컸다. 그걸 알았다면 처음에 잘못 접근하지 않아서 시간을 잡아먹지 않았을 것이다.. 지금 생각해 보면 당연한 건데, 왜 헛다리 짚었을까? 문제 핵심 및 풀이 핵심 파악 이 문제에서 핵심은 도착점까지 가장 빠른 경로를 찾는 것이 아니라, 무조건 k 횟수를 움직여야 한다는 점이다. 가장 빨라야 하는 것은 경로가 아닌 움직인 경로의 문자열 사전순이다. 상하좌우를 각각 'u' , 'd' , 'l' , 'r'로 나타낸다. 각 방향마다 문자가 정해져 있다는 것은, ..

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 파괴되지 않는 건물
Algorithm/Programmers 2023. 9. 17. 17:23

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/92344#qna 알고리즘 스터디 끝나니까 자연스럽게 알고리즘을 안 풀게 되네.. 하루에 하나는 아니더라도 주 3회 정도는 꾸준히 풀어야 하는데, 일주일 만에 푸는 것 같다. 알고리즘에 좀 더 신경 써야겠다. 문제 핵심 및 풀이 쉬운 문제? 문제 이해는 쉽다. 그리고 푸는 방법도 보기엔 간단해 보인다. 그냥 (r1, c1) ~ (r2, c2) 직사각형에 포함된 모든 인덱스에 degree를 더해주면 된다. 근데 이 문제의 제한사항을 보면 그 사용은 사용하지 못하는 것을 알 수 있다. 행과 열의 크기는 최대 1,000까지 가능하다. 즉 1000*1000 짜리 맵이 나올 수 있다. 또한 처리해야 ..

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 보행자 천국
Algorithm/Programmers 2023. 9. 12. 01:24

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/1832 2017년도 그러니까 6년 전쯤에 카카오 코딩 테스트에서 나온 문제 현재의 카카오 코딩테스트 출제 스타일이 다른 느낌 요즘은 DP 잘 안 나온다던데.. 문제 핵심 및 풀이 DFS나 BFS로 풀면 시간초과 아직까지 이해가 가지 않는 부분이다. DFS의 최적의 시간복잡도는 O(V+E)이다. 그래서 문제 조건상 최대 500 * 500 * 2이기 때문에 DFS를 돌려도 시간초과가 뜰 리가 없다고 생각했다. 그런데 해당 방법은 시간초과가 뜨고 다른 방법을 사용해야 했다. 내 상식으로는 이해할 수가 없는데.. 아시는 분..? DP로 문제 접근 두 번째로 생각해 볼 수 있는 가능성은 DP였다. ..