[programmers] 프로그래머스 Level1 완주하지 못한 선수
(파이썬 Python)
* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제
* 소스 코드 및 정리한 내용의 저작권은 글쓴이에게 있습니다.
프로그래머스 Level1 완주하지 못한 선수
1) 문제
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 |
댓글