본문 바로가기

프로그래머스4

프로그래머스 롤케이크 자르기 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/132265 from collections import Counter def solution(topping) : answer = 0 top_1 = Counter(topping) top_2 = set() for i in range(len(topping)) : top = topping[i] top_2.add(top) top_1[top] -= 1 if top_1[top] == 0 : # 딕셔너리에서 특정 키 제거. del dict[key] 도 가능 top_1.pop(top) if len(top_1) == len(top_2) : answer += 1 return answer 모든 인덱스마다 앞뒤로 쪼.. 2023. 1. 25.
프로그래머스 시저 암호 (Python) 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12926 def solution(s, n) : upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" lower = upper.lower() answer = "" for i in s : if i.isupper() == True : answer = "".join((answer, upper[(upper.index(i) + n) % 26])) elif i.islower() == True : answer = "".join((answer, lower[(lower.index(i) + n) % 26])) elif i == " " : answer = "".join((answer, " ")) re.. 2022. 11. 1.
프로그래머스 행렬의 덧셈 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/12950 def solution(arr1, arr2) : answer = [] for i in range(len(arr1)) : answer_r = [] for j in range(len(arr1[i])) : answer_r.append(arr1[i][j] + arr2[i][j]) answer.append(answer_r) return answer numpy 라이브러리를 사용하면 간단하지만, 프로그래머스에서는 사용할 수 없다. 따라서 행과 열로 쪼개서 더해야 한다. 행 번호(i)가 같을 때 열 번호(j)가 같은 성분끼리 더해 answer_r 이라는 리스트를 만들고, answer_r을 합쳐 answer.. 2022. 10. 19.
프로그래머스 멀리 뛰기 (Python) https://school.programmers.co.kr/learn/courses/30/lessons/12914 def solution(n) : answer = [1, 1] for i in range(2, n+1) : answer.append(answer[-1] + answer[-2]) return answer[-1] % 1234567 피보나치 수열을 출력하는 문제이다. n칸을 뛰기 위해서는 (n - 1)칸을 뛴 후 1칸을 더 뛰거나, (n - 2)칸을 뛴 후 2칸을 더 뛰면 된다. 초기값을 넣은 answer라는 리스트를 만들고, n번째 값에 도달할 때까지 가장 끝의 두 값을 더해 append 함수로 추가하는 방식의 코드를 작성했다. 2022. 10. 19.