https://www.acmicpc.net/problem/2557
2557번: Hello World
Hello World!를 출력하시오.
www.acmicpc.net
print("Hello World!")
https://www.acmicpc.net/problem/1000
1000번: A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
A, B = map(int, input().split())
print(A+B)
위 코드에서 첫 줄을 이해하기 위해서는 먼저 input() 함수를 알아야 한다.
input()은 입력 받은 값을 문자열로 인식해준다. 괄호 안에 아무것도 안 적으면, 아래와 같이 공백의 입력란만 나온다. 만약에 정수형을 입력받고 싶으면 int(input()) 이렇게 하면 된다. 입력받을 때 "당신의 나이는?"이라는 질문이 나오도록 하고 싶으면 함수 안에 질문을 입력하여 프롬프트를 띄워주면 된다. 프롬프트에 22를 입력하면 변수 age에 22가 초기화된다.
>>s = input()
hello
>>s
'hello'
>>age = int(input("당신의 나이는?: "))
당신의 나이는?: 22
>>age
22
split()은 기본적으로 띄어쓰기 기준으로 구분해 주는데, 괄호 안에 특정 문자 등을 넣으면, 해당 문자 기준으로 문장이 나눠진다.
>>s = "Hello Seungjin"
>>s.split()
['Hello', 'Seungjin']
그러면 input().split()을 하게 되면 어떻게 될까?
>>n = input().split()
1 2 3 4
>>n
['1', '2', '3', '4']
입력 받은 각각의 값을 리스트로 나누어 준다. 위의 경우에서는 숫자를 입력했지만 문자열로 출력이 됐다. 만약에 int(input().split())을 하면 정수형 리스트로 출력이 될까?
Traceback (most recent call last):
File "/home/main.py", line 1, in <module>
a, b = int(input().split())
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'list'
정답은 오류다. int() 함수는 리스트를 정수형으로 바꿔줄 수 없다. 이럴 때 map 함수를 활용하는 것이다.
map 함수의 모양은 아래와 같다.
map(function, iterable)
첫 번째 매개변수에는 함수, 두 번째 매개변수에는 반복 가능한 자료형(리스트, 튜플 등)이 온다. 함수와 반복 가능한 데이터를 입력으로 받아 데이터의 각 요소에 함수를 적용한 결과를 리턴하는 함수이다.
따라서 a, b = map(int, input().split())은 입력받은 값들을 띄어쓰기 기준으로 구분해서 정수형으로 변환 후 a, b 변수에 초기화 해준다.
def sum(a):
return a+1
print(list(map(sum, [1, 2])))
번외로 map(int, input())에 해당하는 값을 변수로 지정하면 메모리 주소값이 출력된다.
https://www.acmicpc.net/problem/1001
1001번: A-B
두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
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
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(int(a/b))
print(A%B)
여기서 주의 해야 될 점은 예제에서 2(몫)를 출력하였다. 즉, 정수형(int)으로 출력했다는 것이다. 파이썬의 경우 정수 둘을 나누고 떨어지지 않을 때 자동으로 실수형(float)으로 출력해준다. a/b는 말 그대로 나눈 값이다. 출력하게 되면 2.33333이 나온다. 그래서 a/b가 아닌 a//b로 출력해야 된다.
https://www.acmicpc.net/problem/10926
10926번: ??!
준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때
www.acmicpc.net
id = input()
print(id + "??!")
https://www.acmicpc.net/problem/18108
18108번: 1998년생인 내가 태국에서는 2541년생?!
ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국
www.acmicpc.net
y = int(input())
print(y-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
num1 = int(input())
num2 = input()
units = int(num2[2])
tens = int(num2[1])
hundreds = int(num2[0])
print(num1*units, num1*tens, num1*hundreds, num1*int(num2), sep="\n")
https://www.acmicpc.net/problem/11382
11382번: 꼬마 정민
첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다.
www.acmicpc.net
A, B, C = map(int, input().split())
print(A+B+C)
https://www.acmicpc.net/problem/10171
10171번: 고양이
아래 예제와 같이 고양이를 출력하시오.
www.acmicpc.net
print("\\ /\\")
print(" ) ( ')")
print("( / )")
print(" \\(__)|")
파이썬에서 역슬래시(\)를 그대로 출력하고 싶을 경우에는 \\와 같이 \ 앞에 \을 붙여야 \가 출력된다.
이를 이스케이프 문자라고 하는데 아래와 같이 여러가지 종류가 있다.
https://www.acmicpc.net/problem/10172
10172번: 개
문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...
www.acmicpc.net
print("|\\_/|")
print("|q p| /}")
print("( 0 )\"\"\"\\")
print("|\"^\"` |")
print("||_/=\\\__|")
'Algorithm > Step by Step' 카테고리의 다른 글
[단계별로 풀어보기] 2차원 배열 (1) | 2023.05.28 |
---|---|
[단계별로 풀어보기] 심화 1 (0) | 2023.04.02 |
[단계별로 풀어보기] 반복문 (0) | 2023.03.05 |
[단계별로 풀어보기] 조건문 (0) | 2023.03.05 |