2022. 4. 5. 23:18ㆍ코딩/알고리즘
1) 2558 A+B 2번째
처음에 사용자로부터 값을 입력받는 코드를 a=input(int()) 라고 거꾸로 썼었다. 당연히 틀렸다고 나왔다.
파이썬을 주 언어로 쓰지 않다보니, 이 순서가 헷갈렸는데 사용자로부터 입력 받은 값을 다시 정수로 변환하는 과정이
n = int(input())
이었던 것이다.
그래서 코드를 수정한 결과는 다시 맞았다.
a=int(input())
b=int(input())
print(a+b)
2) 10950 A+B 3번째
반복문을 써야 할 것은 감이 왔지만, 만약 for x in range () 에서 () 안에 들어가는 것은 리스트 또는 튜플,문자열인데
무슨 내용이 들어가야 하지? 배열 내에서 인덱스에 접근하는 것도 아니고.. 감이 오지 않았다.
그리고 저번 A+B 1번째 문제처럼 나란히 입력받고 split()으로 두 정수를 쪼개는 것까지는 감이 왔었다.
그래서 다른 분의 코드를 참고해보았다.
t = int(input()) // 테스트케이스 개수를 사용자로부터 입력받는다
for i in range(t):
a,b = map(int,input().split())
print(a+b)
아.. range 안에 들어갈 문자가 사용자로부터 입력받은 t가 되면 되는거였는데 왜 이걸 놓치고 있었지.
그리고 map()함수를 사용했는데 두 수는 공백으로 구분된 하나의 문자열을 입력받고 split() 함수를 이용해서 공백을 기준으로 두 문자열을 분리하고 정수로 변환하기 위해서 map() 함수를 이용하여 코드를 한 줄로 작성
* map 함수 : 리스트의 요소를 지정된 함수로 처리해주는 함수
map에는 리스트뿐만 아니라 모든 반복 가능한 객체를 넣을 수 있다.
>>> a = input().split()
10 20 (입력)
>>> a
['10','20']
split()을 함으로써 문자열 두 개가 들어가있는 리스트가 만들어진다.
map을 사용해서 정수로 변환한다.
>>> a = map(int, input().split())
10,20 (입력)
>>> a
<map object at 0x03DFB0D0>
>>> list(a)
[10,20]
다시 10 20을 입력하면 맵 객체(map object)가 만들어진다. 이 상태로는 안에 들어있는 값을 볼 수 없으므로 list를 사용해서 리스트로 출력한다.
사실 map()이 반환하는 맵 객체는 이터레이터라서 변수 여러 개에 저장하는 언패킹이 가능.
'코딩 > 알고리즘' 카테고리의 다른 글
220411 알고리즘) JS를 이용하여 세 수 중 최솟값 출력 (0) | 2022.04.11 |
---|---|
220330 알고리즘 (BOJ 입출력 - 2557,1000) (0) | 2022.03.31 |
알고리즘 공부 방향 (0) | 2022.03.31 |