알고리즘/백준 문제풀이

[백준] 백준 문제 제출할 때 어떻게 하는지 모르는 사람~! input()이 대체 뭔데! 입력값을 어떻게 테스트 하는데! 백준 제출 하는 법

자바칩 프라푸치노 2021. 6. 15. 21:19

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

 

 

 

10869번: 사칙연산

두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 

www.acmicpc.net

이 문제를 보자

입력을 이렇게 받는다고 한다.

대체 어떻게 제출하는지 몰라서 다른 사람의 답안을 본다

이번에 파이썬을 처음 배운 것이다! 제출 하는 방법도 모름!

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
= 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