본문 바로가기

Algorithm

(77)
[LeetCode] 2038. Remove Colored Pieces if Both Neighbors are the Same Color (C++) Remove Colored Pieces if Both Neighbors are the Same Color - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 파이썬만 하다가 c++을 하려고 하다 보니 확실히 증감연산자(++,--)를 활용이 잘 안 되는 것 같습니다. 풀이 문제는 2개 이상의 연속된 A와 2개 이상의 연속된 B의 개수를 비교하면 쉽게 해결할 수 있었습니다. Alice와 Bob 모두 colors 배열 순서에 영향을 주지 못합니다. A는 A로 둘러쌓인,..
[LeetCode] 2130. Maximum Twin Sum of a Linked List (C++) Maximum Twin Sum of a Linked List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제는 head만 주어진 상태에서 어떻게 linked list의 길이를 알 수 있냐인 것 같습니다. List의 길이를 알지 못하면 어떤 노드들이 twin이 되는지 알지 못하니까요. 풀이 Slow: node를 1개씩 이동 Fast: node를 2개씩 이동 위와 같이 변수를 두개사용하면 Fast가 끝에 도착했을 때까지 Slow를 이동시키면 Slow는 lin..
[LeetCode] 405. Convert a Number to Hexadecimal (C++) Convert a Number to Hexadecimal - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 답을 구하는 과정은 간단하죠. 16으로 나누어 나머지를 string에 계속 이어 붙이면 됩니다. 하지만 저 같은 C++ 초보는 배울 점이 많았다고 생각이 듭니다ㅎㅎ [String에 char insert하는 법] string에 char를 insert하기 위해서는 char의 데이터 크기를 정해주어야 합니다. string& insert (size_t pos..
[프로그래머스] 코딩테스트 연습 - 거스름돈 (Python) 코딩테스트 연습 - 거스름돈 [2022 KAKAO BLIND RECRUITMENT] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 쉽지 않은 문제였다고 생각됩니다. 제가 처음 접근했던 방법은 DFS였지만 효율성의 벽을 넘을 수는 없어서 다른 분들의 풀이를 참고하였습니다. 풀이 해당 문제를 풀이하면서 가장 중요한 키워드는 DP 입니다. 저처럼 DFS/BFS를 시도하신 분들이라면 선택된 동전의 순서로 인해 머리 아프시진 않으셨나요? (저는 그랬거든요ㅠ) 예를 들면 4원을 만들기 위해 (1,1,2) & (1,2,1) & (2,1,1) 은 모두 같은 동전의 개수..
[프로그래머스] 코딩테스트 연습 - 사라지는 발판 (Python) 코딩테스트 연습 - 사라지는 발판 [2022 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 사라지는 발판 [[1, 1, 1], [1, 1, 1], [1, 1, 1]] [1, 0] [1, 2] 5 [[1, 1, 1], [1, 0, 1], [1, 1, 1]] [1, 0] [1, 2] 4 programmers.co.kr 해당 문제 해설은 카카오 사이트에 올라와 있으니 참고하시면 좋을 것 같습니다. 풀이 해당 문제를 풀이하면서 가장 중요한 키워드는 DFS와 완전 탐색입니다. 완전 탐색이 가능한 이유는 board의 길이가 최대 5x5이기에 완전 탐색을 하기에 그리 부담스러운 크기는 아니기 때문입니다. 후에 A와 B의 모든 이동 가능한 경우를 탐색하면 됩니다. 한 가지 신경 써야 할 부분이 있다면..
[프로그래머스] 코딩테스트 연습 - 파괴되지 않은 건물 (Python) 코딩테스트 연습 - 파괴되지 않은 건물 [2022 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr 해당 문제 해설은 카카오 사이트에 올라와 있으니 참고하시면 좋을 것 같습니다. 풀이 해당 문제의 효율성을 통과하는 방법에서 가장 중요한 키워드는 누적합입니다. 문제를 보고 브루트 포스 방법을 사용하면 정확성은 통과할..
[프로그래머스] 코딩테스트 연습 - 입국심사 (Python) 코딩테스트 연습 - 입국심사 [이분 탐색] 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 이분 탐색의 문제이지만 이분 탐색을 어떻게 적용해야 할지 감이 잘 잡히지 않는 문제였습니다. 처음에는 심사관 배열을 탐색해야 하나 하고 헤맸습니다...ㅎㅎ 풀이 제 풀이에서 이분 탐색하는 범위는 시간입니다. 입국심사를 진행하는 최소 시간과 최대 시간을 정해두고 이분 탐색을 이용하는 것이죠. 6명에 대한 심사관들의 심사시간이 [7,10]의 테스트 케이스에서는 입국심사가 이루어지는 최대 시간을 계산해보면 다음과 같습니다. 최..
[프로그래머스] 코딩테스트 연습 - 양과 늑대 (Python) 코딩테스트 연습 - 양과 늑대 [2022 KAKAO BLIND RECRUITMENT] 코딩테스트 연습 - 양과 늑대 [0,0,1,1,1,0,1,0,1,0,1,1] [[0,1],[1,2],[1,4],[0,8],[8,7],[9,10],[9,11],[4,3],[6,5],[4,6],[8,9]] 5 [0,1,0,1,1,0,1,0,0,1,0] [[0,1],[0,2],[1,3],[1,4],[2,5],[2,6],[3,7],[4,8],[6,9],[9,10]] 5 programmers.co.kr 해당 문제 해설은 카카오 사이트에 올라와 있으니 참고하시면 좋을 것 같습니다. 저는 당시 통과했던 코드를 지워서 해설을 참고하여 다시 풀었습니다. 풀이 먼저 해당 문제를 풀이하면서 가장 중요한 키워드는 DFS와 완전탐색 입니다. ..