문제링크
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() 사용] -> 에러발생
[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))
'알고리즘(백준, 프로그래머스) > [백준] BronzeⅣ' 카테고리의 다른 글
[백준 25628 / 파이썬 / BronzeⅣ / sloved.ac] 햄버거 만들기 (0) | 2023.01.05 |
---|---|
[백준 25191 / 파이썬 / BronzeⅣ / sloved.ac] 치킨댄스를 추는 곰곰이를 본 임스 (0) | 2023.01.05 |
[백준 23825 / 파이썬 / BronzeⅣ / sloved.ac] SASA 모형을 만들어보자 (0) | 2023.01.02 |
[백준 19698 / 파이썬 / BronzeⅣ / sloved.ac] 헛간 청약 (0) | 2022.12.29 |
[백준 19944 / 파이썬 / BronzeⅣ / sloved.ac] 뉴비의 기준은 뭘까? (0) | 2022.12.29 |