본문 바로가기

Algorithm/SW Expert Academy

SWEA 1926 : 간단한 369게임(D2)[파이썬]

반응형

SW Expert Academy 1926: 간단한 369게임

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 


- 문제

  입력으로 정수가 주어지면 1부터 해당 정수까지의 정수를 출력하는데, 3/6/9가 하나라도 있으면 해당 하는 만큼 '-'를 출력하는 문제다. 


- 풀이

N = int(input())
for i in range(1, N+1):
    changed = False                                     # -가 있는지 확인용
    if '3' in str(i) or '6' in str(i) or '9' in str(i):  # 3,6,9가 있으면 숫자 출력 불가
        changed = True
    for j in str(i):                                    # 모든 문자를 비교
        if '3' in j or '6' in j or '9' in j:            # 3,6,9가 있으면 -하나 출력
            print('-', end="")
        else:
            if changed == False:                        # 문자열에 3,6,9가 하나라도 있으면 숫자 출력 불가
                print(j, end="")
    print("", end=" ")

   N을 입력받으면 1부터 N까지의 숫자를 출력하되 3/6/9가 있으면 해당하는 만큼 '-'를 출력해야하므로 for j in str(i)를 통해 만약 i가 38이면 '3'이랑 '8'을 따로 구분해서 3/6/9에 해당하는 숫자가 있는 지 판별하고 해당하면 '-'를 출력하도록 했다. changed를 통해 3/6/9가 하나라도 있는지 구분하고 있으면 숫자를 출력하지 못하도록 하였다.


- 기억할 것!

- 1부터 n까지 출력해야 하므로 range(1,N+1)을 해야함

 

반응형