-
프로그래머스 : 같은 숫자는 싫어코딩테스트 문제 풀이/프로그래머스 2023. 11. 20. 00:01
문제 설명!
나의 접근 방법
ZeroBase 강의에서 들었던 내용 중에 비슷한 내용이 있었기 때문에, 너무 어렵지 않게 풀 수 있었다. (조금 어려웠음)
찾아보니 강사님 코드가 훨씬 더 간결하고 쉬웠던것 같다.
강의를 다시 찾아서 학습해보고 내 코드 리팩토링 해야겠다! 💪
내 코드
public class Main { public static void main(String[] args) { // 23.03.13 선택문제 programmers int[] a = new int[]{1,1,3,3,0,1,1}; solution(a); } public static int[] solution(int[] arr) { int[] answer = {}; int now = 0, next = 1; while (true) { if (next == arr.length) break; if (arr[now] == arr[next]) { next++; } else { arr[++now] = arr[next++]; } } answer = new int[now + 1]; for (int i = now; i >= 0; i--) { answer[i] = arr[i]; } return answer; } }
🔻 강의 수강 후 리팩토링 고고 🔻
public class Main { public static void main(String[] args) { // 23.03.13 선택문제 programmers int[] a = new int[]{1,1,3,3,0,1,1}; solution(a); } public static int[] solution(int[] arr) { int[] answer = {}; int idx = 0; for (int n: arr) { if (idx == 0 || n != arr[idx - 1]) arr[idx++] = n; } answer = new int[idx--]; for (int i = idx; i >= 0; i--) { answer[i] = arr[i]; } return answer; } }
핵심 1
int idx = 0; for (int n: arr) { if (idx == 0 || n != arr[idx - 1]) arr[idx++] = n; }
idx가 0 이거나, n이 이전 숫자와 다르면 arr[idx]에 n 입력하고 idx += 1
'코딩테스트 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 : K번째 수 (0) 2023.11.21 프로그래머스 : 프린터 (0) 2023.11.20 프로그래머스 : 위장 (0) 2023.11.20 프로그래머스 : 나누어 떨어지는 숫자 배열 (0) 2023.11.20 프로그래머스 : 기능개발 (0) 2023.11.20