[programmers] 프로그래머스 Level1 완주하지 못한 선수
(파이썬 Python)
* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제
* 소스 코드 및 정리한 내용의 저작권은 글쓴이에게 있습니다.
프로그래머스 Level1 완주하지 못한 선수
1) 문제
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수��
programmers.co.kr
2) 풀이 과정
1. 배열participant와 배열completion에 들어 있는 문자열의 내용이 겹치는 경우가 있기에, 일단 2개다 정렬을 해주면 좋을것 같다라는 생각
case1)
p = ["e", "k", "l"]
c = ["e", "k"]
case2)
p = ["f", "j","m", "n", "v"]
c = ["f", "j","m", "n"]
case3)
p = ["a", "m", "m", "s"]
c = ["a", "m", "s"]
2. 완주하지 못한 선수는 participant와 completion 중에서 당연히 completion을 기준으로 participant를 비교했을때, completion에 없는 이름을 participant에서 뽑아내면 됨
3. 문제에서 주어진 기준만 명확히 잡아야함 3개의 케이스 공통점과 차이점을 확인
공통점)
1. case1과 case2 p의 마지막에 문자를 반환 하게 되는 경우
2. case1,case2,case3 모두 p와c의 문자가 같을 때의 i를 기준으로 p[i+1]의 값이 출력
차이점)
1. case1,2는 p의 맨 마지막의 값이 반환이 되는데 case3의 경우 맨 마지막의 값이 반환이 아님
즉 case3으로 인해서
if(participant[i] != completion[i]):
return participant[i] 를 쓰게 됨
case1,case2,case3의 공통점을 경우로 삼아
return participant[i+1]을 해줌
3) 코드
1
2
3
4
5
6
7
8
9
10
|
def solution(participant, completion):
participant.sort()
completion.sort()
for i in range(len(completion)):
if(participant[i] != completion[i]):
return participant[i]
return participant[i+1]
|
cs |
4) 정리 노트
변수.sort() #오름차순
변수.sort(reverse=True) # 내림차순
'*Algorithm > Programmers_Level1' 카테고리의 다른 글
[programmers] 프로그래머스 Level1 자연수 뒤집어 배열로 만들기(파이썬 Python) (0) | 2020.08.31 |
---|---|
[programmers] 프로그래머스 Level1 자릿수 더하기(파이썬 Python 자바 Java) (0) | 2020.08.31 |
[programmers] 프로그래머스 Level1 문자열 내 p와 y의 개수(파이썬 Python) (0) | 2020.08.31 |
[programmers] 프로그래머스 Level1 문자열을 정수로 바꾸기(파이썬Python) (0) | 2020.08.30 |
[programmers] 프로그래머스 Level1 문자열 내림차순으로 배치하기(파이썬 Python) (0) | 2020.08.30 |
댓글