프로그래머스 썸네일형 리스트형 [프로그래머스] Lv2 요격시스템 java 쉬운 풀이 1. 문제 설명 📌문제 설명문제 설명 생략2. 접근 방식 🗃️KEY WORD: GREEDY ALGORITHMGreedy 알고리즘은 매 선택의 순간에 당시 할 수 있는 최선의 선택을 하는 것이 전체 문제에서도 최적의 해를 구하는 것임을 가정하는 알고리즘이다.여기서는 미사일의 묶음을 끝지점 기준 오름 차순으로 정렬하고, 미사일 묶음의 최대한 끝지점에서 차례대로 요격해 나가면 최소한으로 요격 미사일을 사용하는 것이다. 해당 방법은 다음과 같은 이유로 유효하다.미사일을 만나면 무조건 요격해야 한다. 안하고 지나치는 경우는 없다.따라서 미사일을 만나면 최대한 겹치게 삭제해야 한다.하나의 미사일 묶음 A가 다른 미사일 묶음과 최대한 겹치는 경우는 A의 끝지점에서만 발생한다.예를 들어보겠다.다음과 같이 폭격 미사.. 더보기 [프로그래머스] Lv2 아날로그 시계 java 이해하기 쉬운 풀이! 1. 문제 설명 📌문제 링크아날로그 시계의 초침이 시침 혹은 분침과 겹칠 때마다 알람을 울릴 건데, 주어진 시작 시간부터 끝시간 내에 알림이 몇 번 울렸는지 횟수를 반환하는 함수를 작성하는 문제. 시계의 초,분,시침은 연속적으로 움직인다. 따라서 겹치는 시기가 0.001초 단위일 수도, 0.00001초 단위일수도 있다. 이를 다 생각해서 겹치는 횟수를 구해라! (Lv2 맞나?? Lv3로 격상해야할 듯...)2. 접근 방식 🗃️KEY WORD: SIMULATION시계 침들의 겹침 현상을 최대한 코드로 구현해야 한다. 하지만 연속적으로 이루어지는 움직임 속에서 겹치는 순간을 포착한다는 것은 불가능한 일이다. 따라서 겹친다의 기준을 다음과 같이 정한다.(1) 겹친다의 기준각도 상 초침이 시침 혹은 분침보다.. 더보기 [백준] 1541 잃어버린 괄호 1. 문제 설명 📌문제링크2. 접근 방식 🗃️KEY WORD: GREEDY ALGORITHMGreedy Algorithm은 매 선택의 순간마다 당시 최선의 선택을 하는 것이 전체 문제에서 봤을 때 최선이라는 가정을 하는 알고리즘이다. 해당 문제는 -를 만난 순간부터 뒤에는 무조건 괄호를 활용해 모든 값을 -로 만들어버리면 된다. 최초 -를 만난 후 뒤의 계산에 +가 오든 -가 오든 적절히 괄호만 치면 모든 값을 -로 만들 수 있다. 예를 들어 25 + 32 - 26 - 27 + 28 - 29 + 30 - 3125 + 32 - 26 - (27 + 28) - (29 + 30) - 31처럼 말이다. 3. 코드 소개 🔎(0) 사전 지식문제의 입력이 String으로 뭉뚱그려 주어지기 때문에 문자열 자르기에 .. 더보기 [프로그래머스] Lv1 동영상 재생기 1. 문제 설명 📌문제 링크동영상 재생기의 작동을 구현하는 간단한 문제이다.skip: 현재 user의 위치가 오프닝 구간 안이면, 오프닝이 끝나는 지점으로 JUMP 한다.next: 10초 뒤로 위치를 움직인다. 만약 남은 동영상 시간이 10초 미만이면 동영상의 마지막 위치로 간다.prev: 10초 앞으로 위치를 움직인다. 만약에 현 위치가 10초 미만인 상태에서 prev를 누르면 동영상 맨 처음 위치로 움직인다. (첫 위치 0분 0초)2. 접근 방식 🗃️KEY WORD: SIMULATION그냥 구현 문제이다. 한 가지 까다로운 것은 입력이 String으로 주어지고, 그것을 int로 변환해 작업을 수행해야 하는 점과 답변은 또 String 형태로 변환하여 해야하는 점이다.(1) 첫 번째 접근 방식: C.. 더보기 [프로그래머스] Lv2 석유 시추 Java 쉬운 풀이🥰 1. 문제 설명 📌문제 링크문제 내용이 직관적이기 때문에 부가 설명은 생략하겠다.2. 접근 방식 🗃️KEY WORD: BFSoils라는 1차원 배열을 만든다. 해당 배열의 index 는 land의 열이고, value는 열 당 얻을 수 있는 석유의 양이다.land 전체에 대해서 이중 반복문으로 석유(1)이 있는 위치를 찾는다만약 석유를 찾는다면 해당 위치부터해서 연결된 석유 덩어리를 BFS로 찾는다.BFS로 해당 위치에서 시작해 석유 덩어리를 모두 찾았으면, 지금까지 거친 적 있는 열에 지금까지 찾은 석유량을 더한다.(예를 들어, 열을 1,2,3 거쳤고, 찾은 석유량이 7이면 oils[1] += 7, oils[2] += 7, oils[3] += 7 이 된다.)3. 코드 소개 🔎먼저 전체 코드를 보여주.. 더보기 [프로그래머스] Lv2 막대와 그래프 접근 힌트부터 세세한 코드 분석까지! JAVA 1. 문제 설명 📌문제 링크문제에서는 다음 3가지 단방향 그래프를 제시하고 있다.도넛형은 순환형 그래프이고, 간선의 개수와 정점의 개수가 같다.막대형은 비순환형 그래프이고, 정점의 개수 - 간선의 개수 = 1 이다.팔자형은 순환형 그래프이고, 간선의 개수 - 정점의 개수= 1 이다.이러한 3가지 유형에 해당하는 그래프가 최소 2개 이상 주어진다. 이때 주어진 모든 그래프를 잇는 정점을 하나 그린다. 우리는 이번 문제 풀이에서 해당 정점을 뿌리 정점이라 부르겠다. (문제에서 마땅히 해당 정점을 지칭하는 용어가 없어서 임의로 명명하겠다.) 뿌리 정점을 부착한 예시는 다음과 같다.이때 뿌리정점의 번호, 도넛형 그래프의 수, 막대 그래프의 수, 팔자형 그래프의 수 를 순서대로 기록한 1차원 배열을 출력하면 된.. 더보기 [프로그래머스]Lv3 합승 택시 요금 java 접근 방식부터 코드 분석까지 1. 문제 설명 📌문제 링크무지랑 어피치랑 야근을 끝내고, 집에 갈려고함.버스가 끊겨서 택시를 타야 하는데, 택시 요금이 걱정됨.마침 무지랑 어피치가 집 가는 방향이 같은 쪽이라, 최대한 합승해서 전체 택시 비용을 줄이려고 함. 다만 합승하지 않고 가는게 전체 택시 비용이 더 작을 경우, 그 경우의 수를 선택함.회사 위치 : s, 무지 집: a, 어피치 집: b 의 위치가 주어진다고 치자.어피치와 무지의 택시 요금을 전부 합쳤을 때, 최소 택시 요금을 반환하라.힌트만 얻고 가실 분들은 접근 방식까지만 보고 가시길 바라고, 풀이법을 보실 분들은 끝까지 읽어주시라2. 접근 방식 🗃️KEY WORD: 다익스트라해당 문제가 다익스트라인 것을 알아채기는 쉽지만 거기에 더해 아이디어가 필요하다. 왜냐하면 그저 .. 더보기 [프로그래머스] Lv2 충돌 위험 찾기 java (접근 방식 힌트 + 세세한 코드 분석) 1. 문제 설명 📌문제 링크문제의 설명만 보면 이해하기가 어려운데, 밑의 시뮬레이터를 보면 문제에서 주어진 조건과 로봇의 작동원리는 이해할 만하다.하지만 헷갈리는 것이 있다면 바로, points와 routes의 의미 및 관계라고 할 수 있겠다.(1) 헷갈리는 것 바로 잡기points: 로봇이 방문해야하는 지점의 좌표를 배열 형태로 저장해놓았다.points[i]일 때, 이 i가 방문할 지점의 번호 이고, point[i]의 value가 각각 i란 지점의 행과 열 즉 좌표이다.routes; 로봇별로 방문해야할 지점을 순서대로 나열한 1차원 배열의 묶음이다.routes[i]의 i는 로봇의 번호이고, routes[i]에는 로봇이 방문해야할 지점의 번호가 순서대로 저장되어 있다.예를 들어, routes[2] = .. 더보기 이전 1 2 3 다음