공부하고 기록하는, 경제학과 출신 개발자의 노트

코딩테스트 185

[Python] 프로그래머스. 타겟 넘버 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 만들 수 있는 모든 조건을 순회하면서 조건에 맞는 정답 개수를 찾도록 만들면 된다. dfs, bfs를 사용할 수도 있지만, 이 방식이 좀더 직관적이었다.

[Python] 프로그래머스. 2021 카카오 인턴 - 표 편집 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 백준의 '키로거' 문제에서 영감을 얻어 풀 수 있었던 문제. 선택 위치를 기준으로 왼쪽을 Left, 오른쪽을 right으로 두고 left의 최댓값 < right이 최솟값이 되도록 양쪽을 heap 자료구조로 저장하면 되는 문제. 순서를 기억하기 쉽도록 배열의 index를 사용한다. https://inspirit94..

[Python] 프로그래머스. 2021 카카오 인턴 - 거리두기 확인하기 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 간단한 그래프 문제. 5 * 5 배열 조건이라서 연산량이 그렇게 많지는 않다. dfs / ..

[Python] 프로그래머스. 2021 카카오 인턴 - 숫자 문자열과 영단어 (Level 1)

https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr

[Python] 프로그래머스. 2021 카카오 recruit - 광고 삽입 (Level 3)

programmers.co.kr/learn/courses/30/lessons/72414#fn1 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 누적합 + 투 포인터를 활용해서 풀 수 있는 문제. 어떻게 적용해야 할지 감이 안 와서... 공식풀이와 풀이포스트를 참고했다.

[Python] 프로그래머스. 2021 카카오 recruit - 메뉴 리뉴얼 (Level 2)

programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 오랜만에 다시 풀어보는 코딩테스트 문제. 제한사항을 봤을 때, 주어지는 데이터 크기가 크지 않아서 브루트 포스를 적용할 수 있는 문제였다. combinations를 활용했고, 마지막에 sort하는 것보다 효율적인 방식 (heapq라던가..)이 있지 않을까? 생각했지만 일단 이렇게 풀어도 통과한다.

[Python] 프로그래머스. 2021 카카오 recruit - 신규 아이디 추천 (Level 1)

programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 조건대로 따라가면 되는 문제.

[Python] 프로그래머스. 스타 수열 (Level 3)

programmers.co.kr/learn/courses/30/lessons/70130 코딩테스트 연습 - 스타 수열 programmers.co.kr 문제의 조건에 따르면 "스타수열을 생성하기 위한 핵심 공통값"이 반드시 존재해야 한다. {x[0], x[1]} ... {x[2n-2], x[2n-1]} 의 공통원소가 1개 이상이기 위해서는, 각 쌍마다 공통값이 최소 한 개는 있어야 한다는 의미. 따라서, a 배열에 있는 각각의 원소를 기준으로 '해당 원소가 공통값으로 적용되는 스타수열의 길이' 최댓값을 찾아야 한다. 이 때, 각 원소가 a 배열에 몇 번 등장했는지가 중요하다. 배열에 등장한 횟수가 많을수록, 스타 수열의 길이가 길어질 수 있기 때문. 예컨대 입출력 예시 #3을 보면 [0,3,3,0,7,0,..