문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr시작시간과 종료시간이 배열로 주어지고 해당 시간대가 서로 겹치는 시간대 중 가장 붐비는 시간대에서 중복 수를 구하는 문제다. 전형적인 누적합 문제였다. 코드class Solution { public int solution(String[][] book_time) { int answer = 0; int[] aSum = new int[60*24 + 10..
문제분석https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 오름차순으로 정렬된 중복 포함 배열이 주어진다. 그리고 해당 배열에서 연속된 x개의 합으로 만들어야 하는 수 k가 주어진다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다.추가로 위 2가지 조건이 주어졌다. 처음 시도했던 방법은 0~n-1까지 순차적으로 각 지점부터 시작하는 Sum 객체..
문제분석https://school.programmers.co.kr/learn/courses/30/lessons/181187# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krx축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요.※ 각 원 위의 점도 포함하여 셉니다. 간단한 문제다. 그냥 설명대로 두 원 사이의 정수로 구성된 점의 수를..
문제 분석https://www.acmicpc.net/problem/4179n*m의 미로에서 1명의 지훈이와 x개의 불이 주어진다.땅은 . 벽은 # 지훈이는 J 불들은 F로 표현된다.미로의 가장자리에선 1의 시간을 소모하여 탈출할 수 있다. 최소의 탈출 가능 시간을 구하고, 만약 탈출이 불가능하면 IMPOSSIBLE을 리턴하면 된다. 전형적인 bfs문제다. 불과 지훈이는 동시에 이동한다. (사실상 불이 먼저 이동하고 지훈이가 이동하는게 합리적이다)따라서, 불, 지훈이에 대한 queue를 담고 각자 상하좌우에 대해 가능한 경로를 탐색해나간다,이때, 불의 이동으로 인해 갈 수 있었던 땅이 F로 변하게 되므로 이를 반영해주면 지훈이가 이동하는 차례에 .만 이동 대상으로 탐색하면 되어 부가적인 로직 없이 처리할 ..
문제 분석https://school.programmers.co.kr/learn/courses/30/lessons/250135 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr시작 시간 ~ 종료 시간까지 초침이 분침 혹은 시침과 만나는 횟수를 리턴해주면 되는 문제다. 단, 초침이 분침,시침과 동시에 만나는 경우는 1번으로 센다. 시간을 x hour y min z sec 으로표현해보면시침의 위치는 x(x>=12 ? x-=12) + y/60 + z/3600 분침의 위치는 y/5 + z/300초침의 위치는 z/5 이다. 초침과 분침이 겹치려면 z/5 = y/5 +z..
문제분석https://school.programmers.co.kr/learn/courses/30/lessons/258711# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr단방향 edge들이 최대 100만개 주어진다.각 edge들은 도넛, 막대, 8자형 그래프 중 하나를 구성한다.단, 하나의 노드가 이 그래프와 무관하게 생성되어 있고 이 노드로 부터 각 그래프로의 간선이 추가되어 있다.이때, 해당 노드의 번호와 전체 그래프의 수를 종류별로 구해주면 되는 문제다. 언뜻보면 꽤 복잡하지만, 우리가 찾아야 하는 무관하게 생성된 노드는 해당 노드에서 다른 노드로의 간..
문제 분석https://www.acmicpc.net/problem/1027N개의 원소가 주어진다.각 원소는 빌딩의 높이를 의미한다.i번째 빌딩에서 j번째 빌딩이 보인다는 뜻은 두 빌딩의 꼭대기를 포함하는 직선에 그 사이의 다른 빌딩이 접하거나 만나지 않아야 한다는 것이다.이때, 가장 많은 빌딩이 보이는 빌딩에서 볼 수 있는 빌딩의 수를 구해야 한다. 처음에는, 전체 배열 중 가장 높이가 높은 값을 기준으로 LIS를 왼쪽에서 TOP 오른쪽에서 TOP해서 두번 구하는 방식으로 풀어보려 했으나.. 문제의 조건이 단순히 높이가 낮으면 보이는 것이 아닌 두 빌딩을 이은 선분에 맞닿는 빌딩이 없어야 보인다는 것이었기에 LIS로는 해당 조건을 만족시키기 꽤 어려웠다. 근데, N 자체가 50밖에 되지 않는다. 즉, n..
문제분석https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr n*m 보드에 석유가 있는 곳을 1으로 나타내고, 각 상하좌우 기준 인접 석유끼리는 하나의 집합으로 여길 수 있다.각 col (m line)에 대해서 시추관을 넣을 때 팔 수 있는 최대 석유의 양을 구하는 문제 아주 포멀한 bfs문제다. 전체 배열 원소에 대해 석유가 있다면 (1이라면)bfs로 상하좌우에 대해 인접 포인트 중 방문하지 않았고 석유가 있는 포인트를 탐색 대상에 추가해 나가며 석..