Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스 #가장 큰 물고기 10마리 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- mysql #min() #max() #최소값 #최대값 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기의 평균 길이 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #자동차 대여 기록에서 장기/단기 대여 구분하기 #코린이 #개발자 #study
- 코린이 #개발자 #study
- 프로그래머스 #나이 정보가 없는 회원 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #동명 동물 수 찾기 #mysql #데이터베이스 #db #코린이 #개발자 #알고리즘
- 백준 #다이얼 #5622 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #한 해에 잡은 물고기 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #역순 정렬하기 #알고리즘 #코린이 #개발자 #study
- 백준 #4153 #직각삼각형 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #동명 동물 수 찾기 #알고리즘 #코린이 #개발자
- 프로그래머스 #mysql #12세 이하인 여자 환자 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 회원수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #아픈 동물 찾기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #
- 백준 #일곱 난쟁이 #2309 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #인기있는 아이스크림 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #이름이 있는 동물의 아이디 #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #
- 프로그래머스 #mysql #경기도에 위치한 식품창고 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기 중 가장 큰 물고기의 길이 구하기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #어린 동물 찾기 #코린이 #개발자 #study
- 프로그래머스 #python 개발자 찾기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #모음 제거 #알고리즘 #자바 #java #코린이 #개발자 #study
- 백준 #네 번째 점 #3009 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #과일로 만든 아이스크림 고르기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #흉부외과 또는 일반외과 의사 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 특정 옵션이 포함된 자동차 리스트 구하기 #코린이 #개발자 #study
Archives
- Today
- Total
luke
[프로그래머스] - 같은 숫자는 싫어 (자바/Java) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12906
문제.
풀이.
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
Stack<Integer> st = new Stack<>();
for (int i = 0; i < arr.length; i++) {
if (i == 0) {
st.push(arr[i]);
}
if (st.peek() != arr[i]) {
st.push(arr[i]);
}
}
int[] answer = new int[st.size()];
for (int i = st.size() - 1; i >= 0; i--) {
answer[i] = st.pop();
}
return answer;
}
}
이번 문제는 프로그래머스의 " 같은 숫자는 싫어 " 문제이다.
이 문제는 스택 구조로 접근할 거다. 처음 자바를 접하게 되면 힙, 스택, 큐 구조를 배우게 되는데 그 부분에서는 다음에 따로 한번 정리해 볼 예정이다.
그럼 바로 풀이를 해보겠다.
1. 우선 Integer를 담는 스택 구조를 만들어 준다.
( 여기서 간단하게 설명하자면 스택 구조는 후입선출 구조이다. 즉 먼저 들어온 데이터는 나중에 빠져나가는 구조라는 것이다. 자세한 설명은 조만간 정리해서 올려 보겠다.)
2. 배열의 길이만큼 for문을 돌려준다. 다음 첫번째 조건식에 첫 번째 숫자를 stack구조에 넣어 준다.
3. 다음 조건식에는 index 1번 부터는 stack의 마지막 요소의 값들을 arr배열과 비교해 일치 여부를 확인한다.
4. 일치하지 않을경우 stack구조에 push로 해당 값을 넣어 준다.
5. 리턴 받을 answer의 변수 크기 지정은 stack에 담겨있는 사이즈만큼으로 초기화해준다.
6. 마지막으로 최종 값들을 출력하기 위해 for문을 돌려준다. 하지만 주의할 점이 있다. stack의 구조는 후입선출 구조이기에 역순으로 담아 일반 for문 돌릴 때와 다르게 역순으로 돌려줘야 한다.
'알고리즘문제 > 프로그래머스(Java)' 카테고리의 다른 글
[프로그래머스] - 3진법 뒤집기 (자바/Java) (0) | 2024.05.19 |
---|---|
[프로그래머스] - 개미 군단 (자바/Java) (0) | 2024.05.10 |
[프로그래머스] - 가운데 글자 가져오기 (자바/Java) (0) | 2024.04.23 |
[프로그래머스] - 행렬의 덧셈 (자바/Java) (0) | 2024.04.22 |
[프로그래머스] - 문자열 다루기 기본 (자바/Java) (0) | 2024.04.15 |