본문 바로가기

열정가득한 개발자의 이야기/프로그래머스 문제

프로그래머스 java lv0 길이에 따른 연산

프로그래머스 lv0 길이에 따른 연산

 

문제 요약 : 숫자 배열의 길이가 11 이상이면 각 요소들을 더하고, 10 미만이면 곱해라

 

고려할 사항 : 

1. 각 요소들을 돌아가면서 곱하거나 더하는 방법 -> 배열이니까 for문을 쓴다

2. 배열 길이가 11 이상인지 10 미만인지 확인하는 방법 -> if- else문을 써서 확인

3. answer이 0으로 초기화 되어있다. 곱하기 위한 방법은? -> 0에서 어떠한 수를 곱해봤자 0이다. 그러니 길이가 10 미만일 땐, 1로 초기화해줘야 한다. 

 

답안 :

 

우선 제가 애먹었던 부분은 곱하는 부분입니다. answer이 0으로 초기화가 되어있어서 else 문에 그냥 answer = 1;이라고 재 초기화를 해줬었어요. 근데 계속 5가 나오더라고요. (test 배열 [1,2,3,4,5])

 

ex)

else {

answer = 1;

answer *= num_list[i];

}

 

그래서 보니까 for문으로 돌리니 계속 answer 가 1로 초기화가 되는 것이고, i는 계속 ++되고 있으니 배열의 마지막 값인 5가 출력되는 것이었습니다.. 후.. 이렇게 하나를 또 알아가네요.. 정말 많이 부족하네요

각설하고, 그래서 answer의 초기화 부분을 for문 밖으로 빼서 전역 연산자로 만들어 줬습니다.

좀 신박하게 표현하고 싶어서 삼항 연산자로 표현해 봤더니 뭔가 코드가 세련된 거 같네요 호호호

 

레벨이 뭐가 중요하겠습니까.

포기하지 않고 성장하고 싶은 이 열정이 중요하죠

자바 이 녀석을 정복할 날까지 포기하지 않을 마음을 가지고 있는 게 중요하겠죠

 

뭐.. 이제 잘 알았으니 다음부터는 주의해서 잘 풀어봐야겠어요.

낙담하지 말자ㅏ아ㅏㅏㅏ