코딩 테스트

[프로그래머스/ 파이썬] 같은 숫자는 싫어, 코딩테스트 문제 풀이

행니짱 2022. 9. 2. 16:40

오늘 푼 코테 문제 !

간단해 보이지만, 풀이 방법이 진짜 신박했던 문제다. 

 

내 풀이 방법. 

 

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)