[Baekjoon] 백준 Python 1단계 입출력과 사칙연산(2557, 10718, 1000, 1001, 10998, 1008, 10869, 10430, 2588)
생활 프로그래머가 되기 위해 화이팅!!
백준 - 알고리즘 트레이닝 사이트(https://www.acmicpc.net/)
백준 온라인 사이트로 알고리즘 초보가 공부하는 방법의 순서대로
1단계 입출력과 사칙연산부터
https://www.acmicpc.net/step/1
입출력과 사칙연산 단계
입출력과 사칙연산
www.acmicpc.net
참고로 치팅(다른 사람의 소스코드를 그대로 복사해서 제출하는 행위)가 적발될 경우, 그 제출은 즉시 삭제되며 너무 많은 코드가 치팅으로 적발될 경우 해당 유저의 모든 제출을 삭제하므로 코드를 그냥 배끼면 안된다.
https://www.acmicpc.net/problem/2557
2557번: Hello World
Hello World!를 출력하시오.
www.acmicpc.net
파이썬에서 출력할 때 print()함수를 사용하고 문자열은 ",' 로 구분해서 넣어야 한다.
print("Hello World!")
https://www.acmicpc.net/problem/10718
10718번: We love kriii
ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박
www.acmicpc.net
2줄 입력할 때는 아래같이 두번하거나
print("강한친구 대한육군")
print("강한친구 대한육군")
\n 을 사용해서 줄바꿈을 하면 된다. \는 참고로 키보드 백스페이스 옆에 W에 줄그어진것이다. / 와 구분해야 한다.
print("강한친구 대한육군\n강한친구 대한육군")
https://www.acmicpc.net/problem/10171
10171번: 고양이
아래 예제와 같이 고양이를 출력하시오.
www.acmicpc.net
\의 경우에 실제로 문자로 인식하게 하려면 \을 두번 해야 한다. \을 \\로 바꿔서
print("\\ /\\")
print(" ) ( ')")
print("( / )")
print(" \\(__)|")
또는 따옴표 전에 r을 넣어 \을 문자로 인식함을 알려줘도 된다.
print(r"""\ /\
) ( ')
( / )
\(__)|""")
https://www.acmicpc.net/problem/1000
1000번: A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
input()은 입력을 할 때 사용되는 함수이다. input 한 번에 값을 여러 개 입력받으려면 input().split()을 사용하면 된다.
int(A)는 변수 A를 문자에서 숫자로 바꾼다.
A,B=input().split()
A=int(A)
B=int(B)
print(A+B)
아래처럼 하면 틀리게 되는데 숫자 입력을 엔터로 구분하기 때문이다. 숫자 입력을 공백으로 구분 할 수 있도록 split를 사용해야 한다.
A=int(input())
B=int(input())
print(A+B)
a, b = map(int, input().split())
print(a+b)
https://www.acmicpc.net/problem/1001
1001번: A-B
두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
1000번과 비슷한 문제지만 한번 스스로 안보고 해보려다 print = (a - b)라고 적었다.
a, b = map(int, input().split())
print(a - b)
https://www.acmicpc.net/problem/10998
10998번: A×B
두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
* 곱하기 ** 거듭 제곱
출처: https://includestdio.tistory.com/16 [includestdio:티스토리]
a, b = map(int, input().split())
print(a*b)
https://www.acmicpc.net/problem/1008
1008번: A/B
두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
/ 나누기 // 나누기 연산 후 소수점 이하의 수를 버리고, 정수 부분의 수만 구함
% 나누기 연산 후 몫이 아닌 나머지를 구함
a, b = map(int, input().split())
print(a/b)
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)
print(a-b)
print(a*b)
print(a//b)
print(a%b)
https://www.acmicpc.net/problem/10926
10926번: ??!
준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때
www.acmicpc.net
+ 를 사용해서 출력 값들을 결합한다.
a = input()
print(a + "??!")
, 의 경우 출력값이 결합될 때 기본값으로 공백(띄어쓰기)가 되어 있어 오답이 된다.(백준 ??! 처럼)
sep은 출력값들 사이에 들어가는 기본값을 변경해주는 옵션인데 ""을 넣으면 공백이 없이 붙어서 출력된다.(백준??! )
a = input()
print(a, '??!', sep="")
https://www.acmicpc.net/problem/18108
18108번: 1998년생인 내가 태국에서는 2541년생?!
ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국
www.acmicpc.net
2541 - 1998 = 543
a = int(input())
print(a-543)
https://www.acmicpc.net/problem/10430
10430번: 나머지
첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
www.acmicpc.net
a,b,c=map(int,input().split())
print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)
https://www.acmicpc.net/problem/2588
2588번: 곱셈
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
www.acmicpc.net
리스트 배열의 2,1,0 번째 원소에 접근해서 값을 얻는다. 구글 검색(python list)을 통해 공부해보자.
a = input()
b = input()
a = int(a)
f = int(b[2])
s = int(b[1])
t = int(b[0])
print(a * f)
print(a * s)
print(a * t)
print(a * int(b))
또는 %와 //을 사용해도 된다.
a = int(input())
b = int(input())
print(a*(b%100%10))
print(a*(b%100//10))
print(a*(b//100))
print(a*b)
https://www.acmicpc.net/problem/25083
25083번: 새싹
아래 예제와 같이 새싹을 출력하시오.
www.acmicpc.net
print(" ,r'\"7")
print("r`-_ ,' ,/")
print(" \. \". L_r'")
print(" `~\/")
print(" |")
print(" |")