프로그래머스 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이 들어가게 되는 거죠.
이런 작은 실수를 찾아내면서 저의 실력이 향상되는 거겠죠
어제보다 더 나은 실력을 갖추게 됐네요 아주 미묘하지만..