목록코딩테스트/Programmers Level 1 (59)
김찬양의 개발일지
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dQ8d16/btsBFZK9Mvj/KAkSamRqld7BHBXdK73mnK/img.png)
숫자 짝 https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이과정 가장 큰 수가 되려면 앞에 큰 수가 오고, 뒤에 작은 수가 오는게 좋다. 그러므로 9부터 0까지 갯수를 세고, 그만큼 더해준 다음에 두가지 케이스에대한 예외처리를 해준다. count가 상당히 무거우니 collections의 Counter를쓰는게 효율면에서는 더 좋다. 정답 def solution(X, Y): answer = '' temp = 0 for i in map(st..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dfEGZ1/btsBGV9aaMt/6gfIU0W5k5W5mI2WspVvek/img.png)
삼총 https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이과정 간단한 조합 문제다. itertools의 조합을 사용해서 구하면 편리하다. 조합을 수동으로 구현할 수도 있지만, 정신건강에 매우 좋지않다. 정답 from itertools import combinations def solution(number): answer = 0 for i in combinations(number, 3): if not sum(i): answer += 1 r..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/8i0mN/btsBFFTiUpf/KI6DbIffFzYzJyo66rCk0K/img.png)
콜라 문제 https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이과정 b개의 콜라를 a로 나눈 나머지만큼의 횟수번 받을 수 있다. 해당 값을 answer에 더한 후, 남은콜라와 받은콜라를 더해 가진 콜라에 다시 넣는다. 이를 더이상 불가능할떄까지 반복하면 된다. 정답 def solution(a, b, n): answer = 0 while n>=a: bonus_cola = (n//a)*b answer += bonus_cola n = n%a ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bsJBEf/btsBzLlW0QI/3bW9SLeIMe3vWBHch9lNk1/img.png)
햄버거 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이과정 que의 자료구조가 python에 따로 있는것은 아니지만(deque 같은 import 제외) 그와 비슷한 구조로 쌓아가며 체크해보면 쉽게 풀린다. for로 하나씩 뽑아와서 box에 저장시킨다음 맨 마지막부분이 햄버거가되면 제거하고 계속 쌓는것이다. 정답 def solution(ingredient): answer = 0 box = [] for i in ingredien..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdV6pF/btsBuz0paG3/HoiPiKi5Mjr4ObjIyJmXXK/img.png)
푸드 파이트 대회 https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이과정 물을 제외한 나머지 음식을 2로 나눈 몫만큼 배분하고, 물을 둔 다음 그것을 뒤집어 재배분하면 된다. 정답 def solution(food): foodline = '' for i, s in enumerate(food[1:]): foodline += str(i+1)*(s//2) answer = foodline + '0' + foodline[::-1] return a..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/s7VtY/btsBux8fsLa/Nx1lexigoFpk9VoiFRpDM1/img.png)
https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이과정 문제만 보면 굉장히 복잡해보이지만 사실 간단한 문제다. 순서대로 정렬한다음, 왼쪽부터 4개씩 포장하고 최솟값과 m을 곱하면 된다. k를 따로 넘지않으므로 쓸모가 없다. 첫 항이 최솟값이겠지만 문제대로 min을 사용해 풀어보았다 정답 def solution(k, m, score): answer = 0 score = sorted(score, reverse=True) for i in r..