-
https://www.acmicpc.net/ 1000번 A, B = input().split() print(int(A)+int(B))
input( ) 함수는 사용자로부터 문자열을 입력받을 때 사용한다
입력받는 값은 랜덤으로 받아 어떤 값이 입력돼도 답이 도출되도록 코드를 작성해야 한다
split( ) 함수는 입력받는 문자를 나눌 때 사용하는 함수다
문제에는 두 개의 숫자 사이에는 공백으로 구분되어 있다. 이런 경우에는 공백을 기준으로 숫자를 나누면 된다.
정리하면 input( ). split( )은 입력받는 문자가 아직 정해지지 않았으나 어떤 값이 들어와도 공백을 기준으로 나눈다는 의미
두 개의 수를 + 연산자로 더할려면 입력받은 두 개의 문자를 숫자로 변환하는 과정이 필요하다. 이때 int( ) 함수를 사용하여 숫자 형태의 두 개의 문자를 숫자로 변형 시킨다
문제 풀이_01 - 내포함수
a, b = [int(x) for x in input().split()] print(a+b)
리스트 내포함수를 이용하여 리스트 내부에서 인풋을 모두 받아버린다.
- input()을 받고 공백을 기준으로 split하여 ["1 2 "] -> ["1", "2"]
- 나온 x를 int(x) 로 변환해준다. [1,2]
- 이때 각 리스트에 값 순서대로 a, b, c, d에 들어가게 된다. [a = 1, b = 2]
* 내포함수: for문과 if문을 한 라인에 작성하여 코드를 직관적으로 만들고 실행속도를 높혀주는 기법
#example meter_list = [3, 7, 9, 10] centi_meter_list = [100*i for i in meter_list] print(centi_meter_list) [300, 700, 900, 1000]
문제 풀이_02 - map함수
a, b,= map(int, input().split()) print(a+b)
input() 을 통해 표준 입력을 받는다. (1 2)
split를 통해 공백을 제거하여준다. ["1", "2"]
이제 int를 통해 형변환을 해준다. [1, 2]
map 자료구조에 해당 값을 넣어준다
이때 순서대로 a, b에 map의 값을 넣어준다
*map함수: map은 리스트의 요소를 지정된 함수로 처리해주는 함수
#example # 리스트에 값을 하나씩 더해서 새로운 리스트를 만드는 작업 myList = [1, 2, 3, 4, 5] # for 반복문 이용 result1 = [] for val in myList: result1.append(val + 1) print(f'result1 : {result1}') # map 함수 이용 def add_one(n): return n + 1 result2 = list(map(add_one, myList)) # map반환을 list 로 변환 print(f'result2 : {result2}')
10926번 #문제풀이_01 str = input() print(str, end='') print("??!") #문제풀이_02 print(input() + "??!")
sep=" "
이 옵션을 이용하게 되면 print문의 출력문들 사이에 해당하는 내용을 넣을 수 있다
기본 값으로는 공백이 들어가 있으며 이를 사용해 원하는 문자를 입력할 수 있다
end=" "
print 문을 이용해 출력을 완료한 뒤의 내용을 수정할 수 있다
기본 값으로는 개행(\n)이 들어가 있으며 이를 사용해 개행을 없애거나 원하는 문자를 입력할 수 있다
print("바나나","사과","딸기",end = "**end 입니다** \n") print("자두","포도","수박",sep = "**sep입니다**") #바나나 사과 딸기**end 입니다** #자두**sep입니다**포도**sep입니다**수박
3003번 x = [1, 1, 2, 2, 2, 8] y = list(map(int, input().split())) for i in range(6): print(x[i] - y[i], end=" ")
1. x값의 기본 체스 각각의 피스 개수를 넣어주었다
2. y값의 리스트형식의 정수 값이 들어오도록 만들어주었다
3. for문을 통해 print(x[ i ] - y[ i ]) 내용이 0~5까지 반복하게 만들었다
10430번 A,B,C = map(int,input().split()) print((A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C, sep='\n')
1. 1000번 문제에서 변수가 하나 더 생긴 문제다
2. map함수를 이용해 A,B,C를 int정수값으로 변환시켜주었다
2. sep='\n'을 이용해 줄바꿈을 해주었다
2588번 A = int(input()) B = input() AxB2 = A * int(B[2]) AxB1 = A * int(B[1]) AxB0 = A * int(B[0]) AxB = A * int(B) print(AxB2, AxB1, AxB0, AxB, sep='\n')
A는 int함수를 이용해서 바로 정수로 변환하였고 두 번째 입력받는 숫자 B는 문자열 그대로 두었다. 이렇게 두 번째 입력받은 숫자 B를 문자열로 그대로 둔 이유는 이 숫자를 한 자리씩 떼어내야 하기 때문이다. 문자열은 split 함수를 이용하든 인덱스로 문자의 위치를 이용하든 하나씩 분리를 할 수가 있지만 숫자는 그렇게 할 수가 없기 때문이다.
A와 B의 각 자리의 수를 곱한 값이다. 그래서 두 번째 입력받은 B의 각 자리를 인덱스 기호를 이용하여 하나씩 불러내고 그 불려진 문자를 int 함수를 이용해서 정수로 변환하였다
A와 B의 각 자릿수를 곱한 값을 변수에 선언하였다.
print 함수를 이용해서 출력할 값을 쉼표로 구분해서 입력했고 값 하나를 출력하고 줄 넘김이 될 수 있도록 sep=파라미터에 '\n' 이스케이프 문자를 입력했다