[프로그래머스/ 파이썬] 같은 숫자는 싫어, 코딩테스트 문제 풀이
오늘 푼 코테 문제 !
간단해 보이지만, 풀이 방법이 진짜 신박했던 문제다.
내 풀이 방법.
1. 앞에서부터 순서대로 둘둘 씩 비교한다.
2. 이때, 0번째 인덱스 값은 미리 answer에 추가해준다.
3. 만약 앞의 값과 뒤의 값이 같지 않다면, 뒤의 값을 추가해준다.
다른 사람의 풀이 방법. (진짜 신박함 주의)
answer[-1:] 을 하면, 리스트의 맨 마지막 값을 가져올 수 있다.
continue를 활용하면 코드 실행을 건너뛸 수 있다!!!!
1. answer리스트의 맨 마지막 값과 arr안의 요소 값이 같으면 다음 반복문 실행
2. 맨 마지막 값과 arr안의 요소 값이 같지 않으면, 요소 추가
테스트 코드,
solution([1, 1, 3, 3, 0, 1, 1])
(1) 리스트가 비어있기 때문에 1추가
(2) answer = [1]은 arr의 [1]과 같기때문에 다음 반복문 실행
(3) answer = [1]은 arr의 [3]과 다르기 때문에 3 추가 !
(4) answer = [1, 3] ... 이 과정을 반복한다.
+ continue로 코드 실행 건너 뛰기
1. for에서 continue로 코드 실행 건너 뛰기
: 다음은 for 로 0부터 99까지 반복하면서 홀수만 출력하는 코드다.
if 를 사용하여, i가 짝수면 continue를 실행하는데, 이때 print는 건너뛰고, 다음 반복을 시작한다.
for i in range(100):
if i % 2 == 0:
continue
print(i)
2. while반복문에서 continue로 코드 실행 건너뛰기
: 0 부터 99까지 반복하되, i가 홀수이면 출력하고, i가 홀수이면 다시 while로 돌아감 !
i = 0
while i < 100:
i += 1
if i % 2 == 0:
continue
print(i)