Python/코딩 테스트

파이썬 여러줄 입력받기 문자열 숫자 따로 따로 인식하기

Young_Metal 2022. 10. 7. 17:34

파이썬 알고리즘 풀 때 내가 제일 어려워 하는 것은 입력값 처리하는 것이다. 

이 문제는 동명이인 알고리즘먼데이 구름 문제를 풀다가 입력값을 처리하기 위해 찾은 것들을 공유하기 위해 만들었다. 

 

1. 나는 입력값 받는 건 input()밖에 모르는데?

맞다. 나는 백준이든 프로그래머스든 level1에서 벗어나지 않았던 몸. 

보통 입력을 space단위로 받았었지 줄 단위로 받아본 적이 없다. 

그래서 여러줄 받는 법을 몰랐다. 

 

import sys
read = sys.stdin.readline().split()
num = int.(read[0])
a = [sys.stdin.readline() for _ in range(num)]

 

 

먼저 여러줄 단위로 입력을 받기 위해서는 sys.stdin.readline()이 필요한데,

이것만 쓰면 첫번째 줄만 출력이 된다. 

그리고 그 첫번째 줄이 만약 space 단위로 여러 단어로 이뤄져 있다면 split()을 추가해서 

앞단어 뒷단어 바꾸면 된다. 

 

그리고 num에 이게 몇개의 줄로 이뤄졌는지 알게 된다면 해야할 것은 list로 각각의 줄의 문장들을 받아내는 것이다. 

다행이 이 문제는 문자열이라서 int()이건 안 썼다. 

 

다음은 n개의 줄일 때 하나의 리스트에 각 줄에 입력된 값들을 append하는 방법이다. 

a = [sys.stdin.readline() for _ in range(n)]

그리고 그 a안에 있는 원소들에 내가 원하는 문자열이 포함되어있는지 알려면 가장 쉬운 것은 for문을 돌리는 것이다

for i in a:

  if 'some' in i:

     score += 1

 

이런식이다.