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
- 세마포어란?
- 최단 경로
- 세마포어와 뮤텍스
- 프록시서버
- Synchronization
- 웹 호스팅
- Proxy Server
- 싸피
- floyd-warshall
- 싸피 면접 후기
- 싸피 합격
- SSAFY
- 서버 호스팅
- Dijkstra Algorithm
- 뮤텍스란?
- 다익스트라 알고리즘
- Proxy
- 다익스트라
- 삼성 청년 SW 아카데미
- 호스팅이란?
- 프록시
- 뮤텍스
- 플로이드 워셜
- 호스팅
- 클라우드 서버
- 세마포어
- 세마포어와 뮤텍스의 차이
- 플로이드 와샬
- 동기화
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[프로그래머스][Level3][Java] 풍선 터트리기 본문
programmers.co.kr/learn/courses/30/lessons/68646
문제풀이
보자마자 완탐하면 되지 않을까? 했지만 제한 사항 "a의 길이는 1 이상 1,000,000 이하입니다."를 보고 바로 포기했다.
이 문제는 접근을 다르게 가야되지 않을까 생각하게 되었고, 문제 문구중에 "인접한 두 풍선 중에서 번호가 더 작은 풍선을 터트리는 행위는 최대 1번만 할 수 있습니다."를 보고 문득 각 풍선마다 왼쪽중에 젤 작은거 오른쪽 중에 젤 작은거를 를 하나씩 남겨 자기와 비교를 하여 터트리는 행위 최대 1번을 넘겨버리면 그 풍선은 마지막까지 남는게 불가능하다고 생각 되었다.
leftArr와 rightArr를 따로 선언하여 각각 값을 갱신하였고, 전체 풍선을 도는 for문을 통해 각각 위의 글 문단에서 말한 조건대로 살아남는 풍선을 answer++ 해주었다.
코드
class Solution {
public static int solution(int[] a) {
int answer = 0;
int[] leftArr = new int[a.length];
int leftMin = a[0];
leftArr[0] = a[0];
int[] rigthArr = new int[a.length];
int rightMin = a[a.length-1];
rigthArr[a.length-1] = a[a.length-1];
for(int i = 0; i<a.length-1; i++) {
if(a[i+1] < leftMin) {
leftMin = a[i+1];
}
leftArr[i+1] = leftMin;
}
for(int i = a.length-1; i>0; i--) {
if(a[i-1] < rightMin) {
rightMin = a[i-1];
}
rigthArr[i-1] = rightMin;
}
for(int i =1; i<a.length-1; i++) {
int select = a[i];
boolean chance = false;
int r = rigthArr[i+1];
int l = leftArr[i-1];
if(l < select) {
chance = true;
}
if(r < select && !chance) {
answer++;
}
else if(r > select) {
answer++;
}
}
return answer+2;
}
}
'알고리즘 > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스][Level2][Java] 파일명정렬 (0) | 2020.12.22 |
---|---|
[프로그래머스][Level2][Java] n진수 게임 (0) | 2020.12.21 |
[프로그래머스][Level2][Java] H-Index (0) | 2020.12.18 |
[프로그래머스][Level2][Java] 조이스틱 (0) | 2020.12.17 |
[프로그래머스][Level2][Java] 방금그곡 (0) | 2020.12.16 |
Comments