백준 풀이 🍪

백준 1703번 <생장점>

섭웨이 2022. 8. 9. 14:53

백준 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 값 출력