본문 바로가기

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

프로그래머스 java lv0 카운트 업

 

 

문제 간단 요약 : start_num은 명시적으로 숫자가 시작하는 지점이고, end_num 마지막 숫자를 표현하는 것입니다.

즉, 0부터 시작하는 것이 아닌 start_num부터 시작하고 end_num까지 1씩 증가해야 하는 문제입니다.

 

고려할 점 :

1. 1씩 증가해야한다 -> for 문을 써서 하나씩 증가

2. for문을 줄 때, i의 범위는 무엇으로 설정해야하나 -> 처음 숫자는 0이 아닌 start_num으로 설정하고 i++을 활용하여 하나씩 증가

3. int 배열에 integer를 하나씩 추가 -> arr[i] = 1;처럼 현재 문제에서는 숫자로 표현되어 있기 때문에 쉽게 배열에 넣을 수 있음

 

어려웠던 점 :

처음 arrayList를 쓰지 않고 일반 배열을 썼을 때, 계속 [0,0,0,3,4,5,6,7,8,9]이런 식으로 출력이 되었습니다. 

그 이유는 제가 배열 크기를 int[] answer = new int [end_num]으로 해서 10으로 딱 맞춰졌기 때문입니다. 그래서 배열 크기에 맞지 않게 값을 가져오면 0이 그 자리를 채우게 되었습니다.

이런 점 때문에 arraylist를 활용하여 바로 문제를 풀었습니다. 이젠,,, 잘시간이라..

그래서 저의 답안은 아래와 같습니다.

 

 

바로 array 메서드인 add를 사용하여 하나씩 더해줬습니다.

 

그러나 arraylist가 아닌 배열을 사용하여 풀어보고 싶어서 다시 고민을 해봤습니다.

 

그래서 저의 다른 답안은 아래와 같습니다.

 

처음 도전했을 때, 위의 코드와 같이 짰었어요.

근데 안된 이유가 int i = start_num으로 줬기 때문에 계속 배열의 크기가 맞지 않는다는 오류가 뜨더라고요

그래서 다시 생각해 봤는데, start_num은 이미 고정되어 있으니 여기서 계속 1씩 증가하는 i와 컬래버레이션하면 되지 않을까?라는 생각으로 i = 0으로 주고 더해봤습니다.

다행히도 맞더라고요..

 

오늘 또, 이렇게 쉬운 문제에 절절맨 저의 모습을 보고 반성합니다.

하지만 밑에 있으면 위로 올라갈 일만 남은 거니까, 전 오늘보다 나일이 더 성장한 개발자일 겁니다.

오늘도 수고 많았다 내 자신