[Coding Test]/[프로그래머스]
[프로그래머스] lv2 전화번호 목록 / 파이썬, 고득점kit
전화번호 목록 주의점!매개변수 phone_book은 문자열로 주어집니다.같은 번호가 중복해서 들어있지 않는다.해결방법!파이썬의 문자열 정렬을 이용한다.파이썬의 리스트 슬라이싱을 이용한다. def solution(phone_book): answer = True phone_book.sort() for i in range(len(phone_book)-1): if phone_book[i] == phone_book[i+1][:len(phone_book[i])]: answer = False return answer return answer 파이썬의 리스트 슬라이싱을 이용하면 index out of range를 받지 않고 해결할 수 있다. 반복..
[프로그래머스] 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
[프로그래머스] 가장 큰 수 - 반례 포함
가장 큰 수 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr def solution(numbers): answer = '' numbers = list(map(str, numbers)) numbers.sort(key=lambda x: x*4, reverse=True) for num in numbers: answer += num return str(int(answer)) 두 번째 예시는 아래와 같습니다.[3, 30, 34, 5, 9]"9534330"파이썬 문자열을 큰 순서대로 정렬하면 문자열은 앞자리가 큰 순서대로 정렬되므로 9, 5, 34, 30, 3 이 됩니다. ..
[프로그래머스] 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]]))
![[프로그래머스] lv3 아이템 줍기 / 파이썬 [해설과 다른 풀이], 고득점kit](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyC7hu%2Fbtstk321FFc%2FU5GU8ojFumK6gVaxtrOPaK%2Fimg.png)
[프로그래머스] lv3 아이템 줍기 / 파이썬 [해설과 다른 풀이], 고득점kit
문제 설명 ==> 아이템 줍기 까다로운 문제라고 생각한다. 깊이/너비 우선 탐색 문제이고 상하좌우로 이동하는 것은 다른 문제와 같지만 테두리만 움직여야 한다는 조건이 있다. 주의점! 테두리만 움직여야 한다. ㄷ자 구조의 한계 때문에 최소거리가 오작동 할 수 있다. ㄷ자 구조란? 사진 속 점선 처럼 밀접해 있는 구조를 의미한다. 그래서 많은 해설에서 ㄷ자 구조의 한계를 극복하기 위해 좌표값을 2배로 해주라 한다. ㄷ자 구조의 한계를 극복했기에 상하좌우대각선에서 하나라도 공백이 발생하게 된다. 그 공백이 하나라도 존재하면 그 위치는 테두리라 말할 수 있다. 사진 속 (1, 0)은 상하좌우 중 공백이 (2, 2)는 대각선에서 공백이 발생한다. 그래서 테두리라 말할 수 있다. 나는 위의 방법으로 구글 속 해설과..