[Coding Test]
[프로그래머스] lv1 완주하지 못한 선수 / 파이썬, 고득점kit
완주하지 못한 선수 주의점! completion의 길이는 participant의 길이보다 1 작습니다. 해결방법! participant와 completion의 길이가 항상 1 차이나고 participant에는 동명이인이 있을 수 있다는 점을 고려한다 딕셔너리를 이용해 participant의 수를 세어주고 completion의 수를 뺴주어 딕셔너리에 개수가 0이 아닌 key를 출력 def solution(participant, completion): dict = {} for par in participant: if par not in dict: dict[par] = 1 else: dict[par] += 1 for com in completion: if dict[com] != 0: dict[com] -= 1..
[프로그래머스] lv1 폰켓몬 / 파이썬, 고득점kit
폰켓몬 딕셔너리를 이용해 중복을 없앤다는 것을 이용한 문제입니다. def solution(nums): dict = {} for i in nums: if i not in dict: dict[i] = 1 if len(nums) // 2
[프로그래머스] lv2 가장 큰 수 / 파이썬, 고득점kit
가장 큰 수 어려운 문제였다. 순열로 생각해서 모든 경우를 다 고민하면 된다고 생각했지만 시간 초과에 걸렸다. 주의점! [0, 0, 0, 0]을 정렬할 때 '가장 큰 수'를 구해야 하므로 0이 나와야 한다. 문자열로 출력해야 한다. def solution(numbers): numbers = list(map(str, numbers)) numbers.sort(key=lambda x : x*3, reverse=True) return str(int(''.join(numbers))) 두 번째 예시가 문제다. [3, 30, 34, 5, 9] "9534330" 파이썬 문자열을 큰 순서대로 정렬하면 문자열은 앞자리가 큰 순서대로 정렬되므로 9, 5, 34, 30, 3 이 된다. 하지만 3이 30보다 먼저와야 한다. 파..
[프로그래머스] lv1 K번째수 / 파이썬, 고득점kit
K번째수 파이썬으로 풀 경우 리스트 인덱싱의 의미를 알아야 한다. 주의점! 인덱스 넘버는 0부터 시작한다는 것을 명심하자! 문재해결 아이디어 특정 구간만큼 array의 값을 입력받아줄 새로운 리스트를 생성한다 입력받은 commands의 수 만큼 반복한다 def solution(array, commands): answer = [] for command in commands: tmp = array[command[0]-1:command[1]] tmp.sort() answer.append(tmp[command[2]-1]) return answer print(solution([1, 5, 2, 6, 3, 7, 4], [[2, 5, 3], [4, 4, 1], [1, 7, 3]]))
[백준] 25206 파이썬(python): 너의 평점은
25206번: 너의 평점은 평점 구하는 법을 까먹어서 해맷던 문제다. 에브리타임을 이용하면 학점 자동계산이라 한번도 생각해보지 않았다. import sys grade = { 'A+' : 4.5, 'A0' : 4.0, 'B+' : 3.5, 'B0' : 3.0, 'C+' : 2.5, 'C0' : 2.0, 'D+' : 1.5, 'D0' : 1.0, 'F' : 0.0 } rate = 0 scoresum = 0 for _ in range(20): score = sys.stdin.readline().split() if score[2] != 'P': rate += float(score[1]) * grade[score[2]] scoresum += float(score[1]) print(f'{rate/scoresum:...
[백준] 2587 파이썬(python): 대표값2
2587번: 대표값2 import sys numbers, res = [], 0 for _ in range(5): num = int(sys.stdin.readline()) res += num numbers.append(num) numbers.sort() print(res // 5) print(numbers[len(numbers)//2])