프로그래머스 코딩테스트 같은숫자는싫어 링크 : 여기를 눌러주세요.
프로그래머스에 있는 코딩테스트 같은숫자는싫어 라는 제목의 문제입니다.
프로그래머스 코딩테스트 JAVA 레벨 1에 있는 ‘같은숫자는싫어’ 문제입니다.
코딩테스트 같은숫자는싫어 어떻게 풀지 생각해보기
배열을받아서 같은숫자들을 제거한 뒤 남은 숫자를 리턴해주는 문제입니다.
일단 반복문을 돌려 배열의 index값과 그 다음 index값을 비교한 뒤,
같으면 넘어가고 다른숫자면 리턴해주는 배열에 넣어주고,
마지막 index에서는 비교할 값이 없기때문에 리턴해주는 배열에 넣어줄 수 없어
강제로 넣어줘야겠다고 생각했습니다.
하지만 마지막 인덱스값에서 다음 숫자가 없기때문에 에러가 뜹니다...
네... 반복문의 에러에 빠져들었었습니다 ㅠㅠ...
(제가 많이 부족해서... 나중에 정답을 확인해보니 for in문처럼 쓰는 방법도 있더라구요)
그래서 생각한게 맨 뒤에서부터 비교하는 방법이였습니다.
예를들면 )
1
|
for(int i=arr.length-1; i>=0; i--)
|
이렇게 거꾸로 반복문을 돌리는 것 이였습니다.
아래는 정답이 공개되어 있으니 혼자 풀어보고싶으신 분들은
지금부터 해결해 보시면 될 것같습니다.
코딩테스트 통과한 소스보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
public class Solution {
public static int[] solution(int[] arr) {
List<Integer> preAns = new ArrayList<>();
for(int i=arr.length-1; i>=0; i--) {
System.out.println(i);
if( i == 0) {
preAns.add(arr[i]);
break;
}
if(arr[i] != arr[i-1]) {
preAns.add(arr[i]);
}
}
System.out.println(preAns);
int j=0;
answer[j] = preAns.get(i);
j++;
}
return answer;
}
}
|
뭔가 List안에 넣은뒤 다시 역순으로 answer 배열에 넣어주는게 뭔가 찝찝하긴 하지만...
이 방법외에 다른방법이 있다면 알려주세요 ..ㅠ ㅠ
모든 코드에는 정답이 없으며 저 또한 코드를 잘 짜는게 아니기 때문에
제 코드는 참고용으로만 사용해주시면 감사하겠습니다.
최대한 매일매일 1개의 코딩테스트 문제를 풀려고 노력중입니다.
아직 많이 부족해서 포스팅이 늦을 수 있으니 양해 부탁드립니다.
조언이나 가르침은 항상 기쁜마음으로 받겠습니다.
감사합니다 (_ _)
'알고리즘' 카테고리의 다른 글
[자바스크립트] 자바스크립트로 구구단 만들기 (0) | 2020.08.27 |
---|---|
[자바예제] 프로그래머스 코딩테스트 나누어떨어지는숫자배열 풀이 (0) | 2020.08.27 |
[자바예제] 프로그래머스 코딩테스트 가운데글자가져오기 풀기 (0) | 2020.08.27 |
[자바예제] 프로그래머스 코딩테스트 2016년문제 풀기 (0) | 2020.08.27 |
[자바예제] 프로그래머스 코딩테스트 모의고사 문제 풀기 (0) | 2020.08.27 |