PS (Problem Solving)

PS (Problem Solving)/Programmers

[프로그래머스] 땅따먹기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 각 행의 최대값을 다음 행에 누적하여 더해준다. def solution(land): for i in range(1, len(land)): for j in range(4): land[i][j] += max(land[i - 1][:j] + land[i - 1][j + 1:]) # 이전열이 max값이라면 예외처리 return max(land[-1])

PS (Problem Solving)/Programmers

[프로그래머스] 피로도

문제 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 던전의 개수는 8개 이하로 가정하므로 dfs로 접근 def dfs(level, stamina, clear, dungeons, visit): global answer answer = max(clear, answer) if level == len(dungeons): return for i in range(len(dungeons)): if stamina >= dungeons[i][0] a..

PS (Problem Solving)/Programmers

[프로그래머스] 과일 장수

문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 상자의 개수만큼 과일을 담아 상자마다 최솟값을 구한다. # 과일 장수 def solution(k, m, score): score.sort(reverse=True) N = int(len(score) / m) # 상자의 개수 price = 0 for i in range(N): fruit = score[m * i: m * (i + 1)] price += min(fruit) * m ret..

PS (Problem Solving)/Programmers

[프로그래머스] 불길한 수열 (불행한 수)(Unlucky Number)

문제 4, 13, 413, 134와 같이 숫자가 13과 4를 이용해서 만들 수 있는 수를 불길한 수라고 한다. 그리고 불길한 수가 오름차순으로 나열된 수열을 불길한 수열이라고 한다. 예를 들어 불길한 수열은 다음과 같이 나열될 수 있다. ex) S = {4, 13, 44, 134, 413, 444, 1313......} n이 매개변수로 주어질 때, 불길한 수열에서 n번째 불길한 수를 구하시오. 제한사항 - n은 5,000이하의 자연수이다. 입출력 예 n result 1 4 2 13 3 44 설계 - index를 증가시키며 기존의 배열에서 지속적으로 4와 13을 붙여준다. def solution(n): number = ['4', '13'] index = 0 while 1: # index를 증가시키며 기존의..

PS (Problem Solving)/Programmers

[프로그래머스] 귤 고르기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 귤을 bucket에 담아 몇개인지 count한다 - bucket을 내림차순으로 정렬한다. - 최소 종류로 귤을 판매하기 위해 가장 많은 귤부터 차례대로 빼준다. - 판매하려는 k만큼 귤을 담거나 넘치면 return 한다. # 귤 고르기 def solution(k, tangerine): bucket = [0] * (max(tangerine) + 1)# 0이 있기 때문에 bucket ..

PS (Problem Solving)/Programmers

[프로그래머스] 모음 사전

문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 다른 사람들은 중복순열로 풀었지만 알파벳이 5개밖에 되지 않아 dfs로 풀었다. cnt, answer = 0, 0 # 전역변수 선언 def dfs(level, arr, word2): global cnt, answer data = ['A', 'E', 'I', 'O', 'U'] if arr == word2: answer = cnt return if level == 5: # 길이 5가 되..

PS (Problem Solving)/Programmers

[프로그래머스] 주식가격

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 2중 for문으로 가격이 떨어지는지 확인 - 가격이 떨어진다면 break & bucket에 값 더하기 def solution(prices): N = len(prices) bucket = [0] * N for i in range(N): cnt = 0 for j in range(i+1, N): cnt += 1 if prices[i] > prices[j]: break bucket[i] +..

PS (Problem Solving)/Programmers

[프로그래머스] 프린터

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 출력해야 하는 location 위치를 index로 비유하여 풀이 - bucket array를 사용하는것이 더 쉬운 풀이방법 같다. def solution(priorities, location): answer = 0 # 출력 횟수 while 1: flag = 0 # 우선순위 확인 for i in range(1, len(priorities)): if pri..

PS (Problem Solving)/Programmers

[프로그래머스] 멀리 뛰기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 규칙을 보니 피보나치와 동일하여 피보나치 공식을 적용했다. - 마지막에 123456으로 나누는 이유는 피보나치 수가 빠르게 증가하는데 int 자료형의 범위를 넘어서기 때문이다. def solution(n): now, next = 0, 1 if n == 1: return 1 for _ in range(n+1): now, next = next, now + next return now %..

PS (Problem Solving)/Programmers

[프로그래머스] 점프와 순간이동

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 처음부터 이동하는 것이 아닌 목적지에서 거꾸로 돌아오는 방법으로 접근한다. - 2로 나누었을 때 나머지가 생길 경우 한칸 이동(건전지 사용)으로 간주한다. def solution(n): answer = 0 while n > 0: if n % 2 == 1: answer += 1 n = n // 2 return answer

캐럿노트
'PS (Problem Solving)' 카테고리의 글 목록 (13 Page)