백준 1703번 <생장점>
백준 1703번 <생장점>
브론즈 3
https://www.acmicpc.net/problem/1703
1703번: 생장점
branchorama 나무는 특이한 규칙을 가지고 성장합니다. 어린 branchorama 초목은 하나의 잎을 꼭대기에 가진 가는 묘목이며, 그 잎에는 생장점이 있습니다. 성장하는 계절 동안 나무의 생장점들은 여
www.acmicpc.net
처음으로 한 번에 맞은 문제입니다.
풀고 나서 날강두 세레모니 했습니다.
인생을 행복하게 살려고 노력중입니다.
다른 분이 짠 코드를 구경해보았는데,
map함수, 이차원 배열을 사용한 것이 흥미로워서 가져와 보았습니다.
입력값 ( 1 3 0 \n 2 3 0 2 0 \n 3 3 0 2 1 2 1 \n 0 ) 기준
arr 배열을 할당하고 slice를 사용하여 input에서 마지막 줄인 0을 제거한 새로운 배열을 반환.
--> arr = [('1 3 0') , ('2 3 0 2 0'), ('3 3 0 2 1 2 1')]
map()를 사용해서 요소들을 공백 (" ") 기준으로 다시 배열로 반환. (이차원 배열)
그 과정에서 map(Number)로 문자열에서 숫자로 바꿔줍니다.
--> arr = [[1, 3, 0], [2, 3, 0, 2, 0], [3, 3, 0, 2, 1, 2, 1]]
for of 반복문 사용해서 arr 배열의 각 요소 value 배열에 접근
answer 변수 선언, 값을 1로 할당
다시 각각의 value 배열에서 index 1값 부터 홀수 인덱스 값을 곱하고 짝수 인덱스 값은 빼준 값을 answer로 반환.
value(1) = answer = 1 * 3 - 0 = 3
answer = 3 * 2 - 0 = 6
value(2) = answer = 1 * 3 - 0 = 3
answer = 3 * 2 - 1 = 5
answer = 5 * 2 - 1 = 9
answer 값 출력