https://www.acmicpc.net/problem/10869
이 문제를 보자
입력을 이렇게 받는다고 한다.
대체 어떻게 제출하는지 몰라서 다른 사람의 답안을 본다
이번에 파이썬을 처음 배운 것이다! 제출 하는 방법도 모름!
A,B = map(int,input().split())
print(A+B, A-B, A*B, A//B, A%B, sep='\n')
변수 선언도 안했는데 뭐를 프린트 한단거냐!
바로바로
input()을 하는게 직접 입력을 받아온다는 뜻이다
나는 vscode를 쓰는데 파이썬을 실행시키면 아무것도 안뜨는데 그때
터미널 창에서 저 위에 예제 입력부분에 있는 숫자를
입력시키면 된다
그러면 작성했던 코드가 좌라락 뜬다
저 위에 A,B = map(int, input().split())
이 코드는 input()으로 받은 입력값(string으로 받아짐)을 int로 변환해서
공백기준으로 잘라서 A,B에 순서대로 넣는다는 뜻이다.
그럼 위의 입력값을 받으면 A는 7 B는 3이 되는 것이다..
오케이!
그렇다면?
이런 무진장 많은 입력은 무엇이냔 말이다!!!!!
input()은 한줄 입력을 받아오는 것인데
한줄씩 한줄씩 받는다. 그럼 어떻게 받냐!
문제에 따라 다르지만 이 문제의 경우
1
2
3
4
5
6
7
8
9
10
|
c = int(input()) #맨 위에 줄 입력받음
for i in range(c):
inputs = list(map(int,input().split())) #한줄씩 입력받음
avg = sum(inputs[1:])/inputs[0] #평균
over_avg = 0 #평균 넘는 사람
for score in inputs[1:]:
if score> avg:
over_avg += 1
rate = over_avg/inputs[0] * 100
print(f'{rate:.3f}%') #소수점 3자리까지
|
cs |
이렇게 받는데 설명을 하자면
c는 맨 위의 5를 받는 것이고
5번 for문을 돌면서 inputs에서 그 밑의 입력값들을 한 줄 씩 받는다는 뜻이다.
이런 입력값 말고도
import sys
num= int(sys.stdin.readline())
이 입력값도 있는데 이것은 문제를 풀면서 난이도를 높여가면 자연스럽게 알게 될 것이다.
input()보다 저 코드가 더 빠르고 효율성이 좋다
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 1110 더하기 사이클 파이썬 풀이 (1) | 2021.06.15 |
---|---|
[백준] 2884 알람시계 파이썬 풀이 (0) | 2021.06.15 |
[백준] 2588 곱셈 파이썬 풀이 (0) | 2021.06.15 |
[백준] 10869 사칙연산 파이썬 풀이 (0) | 2021.06.15 |
[자바 java]백준1110 더하기 사이클(완전 초보자풀이) ,scanner, while문 사용 (0) | 2020.09.26 |