coding

[Baekjoon] 백준 Python 1단계 입출력과 사칙연산(2557, 10718, 1000, 1001, 10998, 1008, 10869, 10430, 2588)

소담_아빠 2022. 7. 30. 13:32

생활 프로그래머가 되기 위해 화이팅!!

백준 - 알고리즘 트레이닝 사이트(https://www.acmicpc.net/)

백준 온라인 사이트로 알고리즘 초보가 공부하는 방법의 순서대로

https://velog.io/@dragoocho/%EB%B0%B1%EC%A4%80-%EC%98%A8%EB%9D%BC%EC%9D%B8-%EC%82%AC%EC%9D%B4%ED%8A%B8%EB%A1%9C-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

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)
 
map을 활용해 두 줄로 줄일 수 있다. map에 대해 궁금하면 구글 검색(python map)을 통해 공부해보자.
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("      |")