알고리즘

백준 - 입출력과 사칙연산

joy_lee 2021. 7. 15. 21:36

python으로 알고리즘 공부를 시작함.

 

출력

print()

파이썬의 print의 경우, 자동으로 줄바꿈이 되며 변수도 바로 사용할 수 있어서 편하다.

 

입력

input()

input안에 메시지를 넣으면 코드를 실행했을 때 메시지가 먼저 나타나고 그 옆에 입력을 받을 수 있도록 커서가 깜빡인다.

 

input().split(구분문자)

한 줄 입력을 받을 때 구분문자로 나눠서 문자로 이뤄진 리스트를 입력받는다.

1
2
3
4
arr = input().split()
# 1 3 5 입력 후 엔터
print(arr)
# ['1', '3', '5'] 
cs

 

a, b, c = input().split()

여러 문자를 각각의 변수에 입력할 수 있다.

1
2
3
4
a, b, c = input().split()
# 1 3 5 입력 후 엔터
print(b)
# 3 출력
cs

단 위와 같이 리스트의 요소를 따로 지정하는 경우는 요소의 갯수에 맞춰서 입력하지 않으면 오류가 생긴다.
위의 경우에 '1 3'만 입력하면 안됨

int(input())

형변환(문자 -> 숫자)

입력받은 내용은 문자로 저장된다. 앞에 int로 형변환을 하면 숫자로 저장할 수 있다.

 

arr = list(map(int, input().split()))

입력 데이터가 몇 개인지 알 수 없는 경우에는 map과 list를 사용한다.

map(int, input().split()) : 한 줄 입력받은 내용을 공백으로 나눈 후 각각 int로 변환한다

list() : 괄호 안의 데이터를 list로 묶는다

1
2
3
4
arr = list(map(int, input().split()))
# 1 3 5 입력
print(arr)
# [1, 3, 5]
cs

 

연산기호
+ 더하기
- 빼기
/ 나누기
% 나머지
// 몫

 

2588번

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

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

내가 작성한 코드

1
2
3
4
5
6
= int(input())
= list(map(int,input()))
print(a*b[2])
print(a*b[1])
print(a*b[0])
print(a*b[2+ a*b[1]*10 + a*b[0]*100)
cs

첫 번째 수는 세자리수로 입력받고, 두 번째 수는 입력받아 각 자리수를 따로 list에 집어넣었다.
그래서 (3), (4), (5)를 a*b[n]으로 바로 구하고 (6)은 자리수에 맞춰 10과 100을 곱해 더해주었다.

다른 정답들의 경우, b도 a와 동일하게 입력받은 후 연산을 통해 자리수를 따로 구해 곱해주는 경우도 있었다.
(3) a * (b % 10)

(4) a * (b % 100 // 10)

(5) a * (b // 100)

 

참고한 곳 : https://itcrowd2016.tistory.com/81

 

[python] 코딩테스트 문제에서 입력처리 정리

알고리즘 강의를 하다보면 생각보다 많은 학생들이 입력에서 막혀서 시간을 허비하는 것을 봤다. 이번 기회에 정리해 놓으면 한 분이라도 도움이 될것 같아서 정리해보도록 하겠다!! ^-^ 코딩테

itcrowd2016.tistory.com

 

'알고리즘' 카테고리의 다른 글

백준 - 함수  (0) 2021.07.27
백준 - 1차원 배열  (0) 2021.07.26
백준 - while문  (0) 2021.07.20
백준 - for문  (0) 2021.07.20
백준 - if문  (0) 2021.07.16