본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 2][Python] 4592번 : 중복을 없애자

by 빛밤하늘 2021. 4. 22.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

4592번: 중복을 없애자

Al의 초콜릿 망고 회사는 방문자들이 2d 단지에 얼마나 많은 초콜릿 망고가 있는지 추측할 수 있는 웹 사이트를 갖고 있다. 방문자들은 1부터 99까지의 수를 추측한 후 "제출" 버튼을 누르는데, 안

www.acmicpc.net

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# 0 하나를 입력할 때까지 반복합니다.
while True:
    # 0 혹은 공백으로 구분된 일련의 숫자들을 입력합니다.
    numbers = input()

    # 결과를 저장하는 변수를 선언합니다.
    result = ""

    # 입력값이 0 하나라면
    if numbers == "0":
        # 반복문을 탈출하고 종료합니다.
        break
    # 입력값이 공백으로 구분된 일련의 숫자라면
    else:
        # 숫자들을 공백으로 구분해 리스트 형태로 저장하는 변수를 선언합니다.
        numbers = numbers.split(' ')

        # 리스트 변수에서 맨 앞에 있는 숫자는 N입니다.
        # 0 <= N <= 25
        N = int(numbers[0])
        # 리스트 변수에서 그 이후에 있는 숫자들은 방문자들이 제출한 값들입니다.
        # 1부터 99 사이의 수입니다.
        numbers = numbers[1:]

        # 일단 결과 변수에는 방문자들이 제출한 값 중 맨 앞에 있는 값과 공백을 넣어줍니다.
        result += numbers[0] + " "

        # 방문자들이 제출한 숫자 중 두 번째부터 끝까지 반복해봅니다.
        for index in range(1, N):
            # 리스트 변수에서 현재 숫자가 바로 앞의 숫자와 똑같은 숫자가 아니라면
            if numbers[index-1] != numbers[index]:
                # 결과 변수에 현재 숫자와 공백을 넣어줍니다.
                result += numbers[index] + " "

        # 출력 형식에 맞게 결과 변수의 갑과 맨 뒤에 $를 같이 출력합니다.
        print(f"{result}$")

결과

 

첫 번째로 제출한 코드에서는 입력받은 값에서 N이 두 자리 숫자도 될 수 있다는 가정을 하지 않고 

인덱스로 numbers[0]만 N에 할당시켜 제출해서 잘못된 결과가 나오는 경우가 있었고,

틀렸습니다 결과가 나왔습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글