본문 바로가기

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

프로그래머스 java lv0 n번째 원소부터

 

 

오늘도 프로그래머스 java문제를 풀어보았습니다!

여전히 레벨 0이지만,, 0도 한 번에 풀지 못하지만 올해 안에는 꼭 레벨 5까지 다 풀어볼 거예요.. 아마도..?

여전히 435문제가 남았지만.. 하루에... 2문제 푼다고 하면.. 오호... 다 못 풀 수 도있겠네요..

그러나 제가 할 수 있을 만큼 최선을 다해서 내년 초까지 저의 최고의 실력으로 올릴 겁니다.

올해 1년 안에 정말 많은 걸 해서 제 자신을 더 좋은 환경으로 옮겨줄 거예요

무럭무럭 자나라게

 

하여간 각설하고 문제 풀이 해보겠습니다!

 

 

문제 간단 요약 : num_list라는 배열에서 n번째 원소부터 마지막 원소까지 배열에 담는 문제입니다.

 

고려할 사항 :

1. 배열 크기 ->( num_list.length - n )+ 1로 지정 _ 그 이유는 num_list의 길이만큼 넣으면 구해야 하는 원소의 수와 다르기 때문에 안됩니다. 그래서 n을 빼줬어요. 근데 배열의 순서가 0부터 시작하는 특성상, + 1을 해줘야 합니다. 

2. 하나씩 원소 넣는 방법 -> 이제는 뭐 척하면 척이죠. for문.. 근데 이제 좀 다른 방법도 시도해 보고 싶어서 Arrays.copyOfRange()라는 함수를 써봤습니다.

이 함수의 구성은 Arrays.copyOfRange(복사할 배열, 시작 점, 끝점)입니다.

3. for문 썼을 때, 원소의 시작 정해주기 -> answer [i]로 해주면 안 되는 점이 i를 n으로 지정해서, n 크기의 순서로 들어갈 거예요

예로 n이 3일 때, answer [3]이 되면,, 시작점이 0이 아닌 3으로 되니까 이상하죠? 그러니 0으로 맞춰주기 위해 다시 i에서 n을 빼서 원소들이 0번째부터 잘 들어갈 수 있도록 해줍니다. 그리고 지정된 숫자 위치의 값이 들어갈 수 있도록 -1을 해줍니다. 이 또한 배열의 특성과 같이 0부터 시작해서인데요. 예로  num_list = {1,2,3,4,5} 일 때, num_list [i]부터 넣는다면 (i가 3으로 가정할 때) 4가 들어가게 됩니다. 3이 들어가야 하는데요. 그러니 원하 값이 들어갈 수 있도록 -1을 해주는 거예요

 

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

 

답안 :

 

for문과 array 함수를 함께 써서 문제를 해결해 봤습니다.

처음에 for문 돌아가는 범위를 i < num_list.length로 해서.. 계속 결과가 이상하게 나오는 거예요..

그래서 생각해 보니 <=로 해줘야 하겠더라고요.

만약 i가 num_list와 길이가 동일할 때라면 0이 계속 들어가게 됩니다. 

예로, i가 3이고, num_list도 3이라면 i < num_list로 해놓으면 2까지 밖에 안 들어가니까 여기부터 오류여서, 

num_list = {1,2,3} 일 때, 3이 들어가야 하는데 0이 들어가게 되는 거죠. 

 

이런 작은 실수를 찾아내면서 저의 실력이 향상되는 거겠죠

 

어제보다 더 나은 실력을 갖추게 됐네요 아주 미묘하지만..