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

프로그래머스 86

[Python] 프로그래머스. 최적의 행렬 곱셈 (Level 4)

programmers.co.kr/learn/courses/30/lessons/12942 코딩테스트 연습 - 최적의 행렬 곱셈 크기가 a by b인 행렬과 크기가 b by c 인 행렬이 있을 때, 두 행렬을 곱하기 위해서는 총 a x b x c 번 곱셈해야합니다. 예를 들어서 크기가 5 by 3인 행렬과 크기가 3 by 2인 행렬을 곱할때는 총 5 x 3 x 2 = programmers.co.kr DP문제. 이전에 풀었던 백준 파일합치기 문제와 로직은 동일하다. [Python] 백준 11066. 파일 합치기 https://www.acmicpc.net/problem/11066 11066번: 파일 합치기 문제 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장..

[Python] 프로그래머스. 2020 카카오 인턴 - 경주로 건설 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr bfs 기반 탐색 문제이면서, 경로의 최소비용을 체크하는 문제.

[Python] 프로그래머스. 2020 카카오 인턴 - 수식 최대화 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 � programmers.co.kr 이 문제도 시험 당시에는 제대로 못 풀었었다. 재귀를 활용한 분할정복으로 접근해야 하는 문제. 1. 문자열을 우선순위 문자열을 기준으로 분리한다. 2. 분리한 문자열을 다음 우선순위 문자열을 기준으로 분리한다. 3. 가장 마지막 우선순위 문자열에 도착했으면, 연산한 결과를 문자열 형태로 리턴한다. 100-200*300-500+20 이고 연산 우선순위가 (*..

[Python] 프로그래머스. 2020 카카오 인턴 - 보석 쇼핑 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 실제 테스트할 때 효율성을 끝까지 해결 못 했던 문제. 처음 접근할 때는 '이분탐색으로 window 사이즈 탐색' + '해당 window size가 조건을 충족하는지 확인'하는 방식으로 풀었는데, 다시 풀면서 접근해보니 리스트 슬라이싱을 쓰면 시간초과가 반드시 등장했다. 정답은 투 포인터를 활용한 탐색.

[Python] 프로그래머스. 가장 긴 팰린드롬 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들 programmers.co.kr 홀수 / 짝수 두 개의 window를 기준으로 판별한다.

[Python] 프로그래머스. 2019 카카오 recruit - 블록 게임 (Level 4)

https://programmers.co.kr/learn/courses/30/lessons/42894 코딩테스트 연습 - 블록 게임 [[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,0,0,0],[0,0,0,0,0,4,4,0,0,0],[0,0,0,0,3,0,4,0,0,0],[0,0,0,2,3,0,0,0,5,5],[1,2,2,2,3,3,0,0,0,5],[1,1,1,0,0,0,0,0,0,5]] 2 programmers.co.kr 구현까지 시간이 오래 걸렸던 문제. 검은 블록을 채울 수 있는 모든 공간에 검은 블록을 채우고, 검은 블록과 설치된 블록을 합쳤을 때 직사각형 블록..

[Python] 프로그래머스. 소수 만들기 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. combinations으로 숫자 세 개 뽑기 2. 뽑은 세 개의 숫자를 합한 값이 소수인지 판별하기.

[Python] 프로그래머스. 점프와 순간이동 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 현재 위치부터 0까지 도달하는 방법을 역산하면 간단히 식을 도출할 수 있는 문제. 이전 위치 * 2로 현재 위치에 도달할 수 있으면 건전지 사용이 필요없다. 즉, 현재 위치 % 2 == 0이면 건전지 사용 없이 위치에 도달할 수 있다. 만약 현재 위치 % 2 != 0이라면, 현재 위치 % 2가 0이 될 수 있도록 1을 빼준다. 문제의 예시 5000은 5000 -> 2500 -> 1250 -> 625 -> 62..

[Python] 프로그래머스. 타일 장식물 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/43104 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그림에서 바로 점화식을 찾을 수 있는 문제. table[idx] = idx번째 사각형의 한 변의 길이로 정의하면 table[1] = 1, table[2] = 2이고 idx >=3일 때 table[idx] = table[idx-1] + table[idx-2]가 된다.