알고리즘(백준, 프로그래머스)/[백준] BronzeⅣ

[백준 24883/ 파이썬 / BronzeⅣ / sloved.ac] 자동완성

마법사 코딩공주 2023. 1. 2. 13:15
728x90
반응형

문제링크

https://www.acmicpc.net/problem/24883

 

24883번: 자동완성

D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외부 개발자들을 지원

www.acmicpc.net

문제

숭고한 알고리즘 대회를 운영하게 된 성서는 참가자들에게 상금을 주기 위해 여러 기업에 후원 요청을 보냈고, D2 CAMPUS를 통해 대회 상금을 지원받게 되었다.

상금을 사비로 부담하지 않아도 돼서 감사한 성서는 검색창에 N 또는 n이 입력되면 Naver D2가 자동 완성되도록 설정하고 싶다. 알파벳 하나를 입력받아서 그 알파벳이 N 또는 n이면 Naver D2를 출력하고, 아니라면 Naver Whale을 출력하는 프로그램을 작성해보자.


입력

첫 줄에 알파벳 하나가 주어진다.

출력

주어진 알파벳이 N 또는 n이면 "Naver D2", 아니라면 "Naver Whale"을 따옴표를 제외하고 출력한다.


풀이

import sys
input = sys.stdin.readline

s = input()

if s in 'N' or s in 'n':
    print('Naver D2')
else:
    print('Naver Whale')

풀이(함수화)

※ sys.stdin.readline()을 사용시 개행문자 주의

https://wisdom-coding38.tistory.com/65

 

[Python 문법] input(), sys.stdin.readline(), sys.stdin.readline().strip()

▶ input() 내장함수는 parameter로 prompt message를 받을 수 있다. 또한 입력받은 개행 문자를 삭제시켜서 리턴한다. ▶ sys.stdin.readline()은 prompt message를 인수로 받지 않고, 개행 문자를 포함한 값을 리턴

wisdom-coding38.tistory.com

오류 풀이

아래 소스를 이용할 경우 출력이 'Naver Whale'로 나온다 그 이유는 개행문자 \n이 포함되어 있기때문 이를 해결하기 위해

sys.stdin.readline().strip()을 이용하여 개행문자를 자동으로 없애본다.

import sys
input = sys.stdin.readline

def auto(alpha):
    answer = "Naver D2"

    if alpha not in ("N", "n"):
        answer = "Naver Whale"
    
    return answer

if __name__ == "__main__":
    alpha = input()
    print(auto(alpha))

[sys.stdin.readline().strip() 사용] -> 에러발생

1

[sys.stdin.readline().strip()를 바로 alpha변수에 저장 ] -> answer에 원하는 값이 return되는걸 확인

import sys

def auto(alpha):
    answer = "Naver D2"

    if alpha not in ("N", "n"):
        answer = "Naver Whale"
    
    return answer

if __name__ == "__main__":
    alpha = sys.stdin.readline().strip()
    print(auto(alpha))

728x90
반응형