큐를 활용해서 문제 풀이
소수찾기
문제링크스택을 활용한 풀이
문제링크큰 수와 작은 수를 곱하는 것이 최소의 누적합을 얻을 수 있다.따라서 A는 오름차순, B는 내림차순으로 정렬한 것처럼 생각해서 순서대로 곱하고 누적합을 구한다.
문제링크단순 구현문제1\. 오늘 날짜와 개인정보 수집 일자를 day로 환산2\. 두 날짜 사이의 기간을 구합니다.3\. 기간이 개인정보 보관 유효기간 보다 길다면 "오늘 날짜로 파기해야 할 개인정보 번호"이므로 answer에 순서대로 저장합니다.
이진 변환 반복하기 문제링크 풀이 단순 구현문제 replaceAll, Integer.toBinaryString()를 활용하기 코드
문제링크단순 구현문제
문제링크단순 구현문제등차 수열의 합을 이용하여 연속된 수열이 가능한지 확인하였다.
문제링크단순 구현문제
문제링크단순 구현문제
문제링크Set을 활용하여 중복된 단어를 확인한다charAt을 활용하여 단어의 마지막 글자와 다음 사람의 첫글자를 비교한다.
문제링크완전 탐색BUT, 근의공식으로 하면 바로 풀림...!!!
문제링크단순 구현 문제초고수는.. XOR을 활용해 풀었더라...
문제링크탐욕, 그리디 문제사람을 무게순으로 정렬그리고 무거운 사람을 기준으로 무거운 사람과 가벼운 사람이 같이 탈 수 있는 지 확인같이 탈 수 없다면 무거운 사람 한명만 구명보트에 태우고 같이 탈 수 있다면 가벼운 사람도 같이 태운다.
문제링크그리디로 단순 구현하여 푸는 문제첫번째 풀이를 통해 정확성 테스트는 통과하였지만, 효율성 테스트를 통과하지 못하였다.백준의 숨바꼭질을 이런 형식으로 풀었었는데 해당 문제보다 간단하여 그리디로 바로 구현할 수 있었다.방문 여부를 확인하는 배열, 몇번만에 해당 장소
문제링크수학 문제두 숫자의 최소 공배수를 최대공약수를 활용해 구하고 arr에 담긴 숫자 만큼 반복하여 구하였다.첫번째 풀이 (실패)
문제링크(https://school.programmers.co.kr/learn/courses/30/lessons/12914?language=javadp를 활용해 문제를 풀었다.경우의 수를 확인하는 데 하다보니 규칙을 찾아서 3일 경우 2의 경우의 수 + 1의
문제링크단순, 그리디로 생각해서 가장 적은 귤 종류를 선택하기 위해 가장 갯수가 많은 귤부터 담는다고 생각해서 풀이하였다.
문제링크스택을 활용하여 괄호모양을 확인였다.
문제링크간단한 정렬을 통해 문제를 해결하였다.
문제링크처음에는 matrix를 2차원 배열로 생성하여 값을 저장후 answer로 값을 추출했는데 메모리 초과 오류가 났다.이후 규칙으로 수식으로 바로 값을 얻을 수 있도록 고쳐 문제를 해결했다.
문제링크단순 구현 문제 였다.
문제링크LRU의 개념을 이해하고 풀어야했던 문제이다. 해당 풀이는 LRU 구현 내용을 참고하여 풀었다.
문제링크map 자료구조를 활용헤 문제를 풀이 하였다.
문제링크map 자료구조를 활용헤 문제를 풀이 하였다.10일 을 기준으로 10일 이전은 그냥 더하고 11일 부터는 10일 전 즉 1일날의 discount 항목을 제거하면서 마치 sliding window 처럼 생각해서 풀이 하였다.그리고 각 날짜 마다 조건을 만족하는지
문제링크comparator를 활용해 문자를 길이 순서대로 정렬하고, 이후 각 string을 숫자로 변환하여 숫자가 있는 지 여부를 확인 후 answer의 각 순서에 맞게 숫자를 넣었다.
문제링크실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다.3.1 한 번 실행한 프로세스
문제링크입력으로 들어온 문자열은 두 글자씩 끊어서 다중집합의 원소로 만든다. 단, 만들 때 해당 문자열이 알파벳으로 이루어져 있는지 확인 후 만든다.str1, str2 에 대해 다중 집합을 모두 만든 후, 두 집합이 공집할 일 경우에는 바로 자카드 유사도 값 1을 활
문제링크완전 탐색 관련 문제 였다.던전을 모든 순서대로 배열해서 문제를 푼다. (이때 permutation 활용했던 형식처럼 풀이하였다.)순서대로 선택할 때 다시 똑같은 던전을 선택하지 않도록 isSelected 배열을 생성하여 선택여부를 확인한다.isSelected
문제링크PriorityQueue 2개를 활용해서 최댓값, 최솟값을 찾기 쉽도록 구현하였다.
문제링크재귀와 memoization을 활용해서 문제를 풀이하였다.처음에 % 1234567를 마지막 결과값을 나타낼 때만 사용했었는데, overflow가 나서 결과값이 제대로 나오지 않았다.그 이후 memo\[] 저장할 때 모든 값에 % 1234567를 적용하여 문제를
문제링크수학을 활용한 풀이다.간단하게 몫과 나머지를 구하고 n크기 만큼 다 몫으로 채우고 나머지개수만큼 몫+1로 로 채워서 풀이했다.
문제링크양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.0P0처럼 소수 양쪽에 0이 있는 경우P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우0P처
주차 요금 계산 문제링크 풀이 단순 구현 parking에 먼저 출차 기록을 바탕으로 몇시에 입차했는지 기록하고 출차시에 costs에 차량이 누적하여 얼마나 주차했는지 저장합니다. 출차 기록을 다 확인후 아직 parking에 남아 있는 차량에 대하여 23:59으로
문제링크단순 구현1\. record에서 string을 " "으로 split 후 명령어(split\[0])을 기준으로 조건문을 만듭니다.2\. Enter와 Leave 기록을 남겨야 하니, 두 경우에 useId와 E 또는 L에 대하여 기록을 순서대로 저장한다.3\. En
문제링크dfs1\. dfs를 활용하여 1자리만 달라서 변경이 가능하면 계속 변경해 나간다.2\. 변경한후 변경한 단어가 target단어라면 끝낸다.3\. target단어 바뀌는 과정들 중 변경 회수가 제일 작은 경우를 찾아 리턴한다.
...
문제링크구현1\. skillOrder에 해당 값이 몇번째의 스킬 트리인지 표시한다. 알파벳이 26개 이고, 대문자 알파벳이 단 한개씩만 존재한다는 것을 이용하여 skillOrder에 표시하였다.2\. skill_trees을 돌면서 cnt로 현재 몇번째 스킬트리까지
문제링크구현초기화게임 캐릭터가 움직일 좌표 평면 board를 만든다.문제 풀이에는 -5 <= x <=5, -5 <= y <=5, 시작점 (0, 0)로 되어 있으나 편의상 0 <= x <=10, 0 <= y <=10, (5,5
문제링크dfs or 수학list에 A, E, I, O, U로 만든 최대 길이가 5인 단어들을 모두 넣는다.dfs를 활용해서 cnt로 현재 단어의 길이를 파악하고, cur로 현재까지 조합된 단어들을 저장하고 있다.기본적인 원리는 중복 순열과 동일하지만, 특정 n개를 뽑
문제링크stack1\. stack에 순서대로 인덱스를 담는다.2\. 만약 stack에 원소가 있다면 해당 원소와 지금의 원소를 비교해서 지금의 원소가 "해당 원소보다 뒤에 있는 큰 수"라면 anwer의 해당 원소 인덱스에 지금의 원소를 남긴다.이 과정 이후에 남은 s
문제링크정렬1\. File이라는 클래스를 만든다.2\. Comparable를 활용하여 문제에 적힌 대로 정렬한다.3\. 이후 순서대로 담아준다.=> 다른 사람의 풀이는 정규표현식을 활용한 풀이로 훨씬 풀이가 간단하였다!
문제링크구현1\. friendsBlock을 통해 한 사이클을 만들었다. 좀 더 살펴보면먼저 블록의 삭제여부 확인을 위한 deleted를 만들었다.1-1. (블록 삭제) 문제에 적힌 대로 카카오 프렌즈 블록 4개씩 붙어 있는 경우 삭제한다.1-2. (빈공간 채우기) 각
문제링크슬라이딩 윈도우 / 구현1\. 케이크 조각을 두명으로 나눠야 하는데, 토핑이 최대 10,000개 까지 가능하므로 int\[] person1 = new int\[10_001];로 토핑 개수를 표시할 array를 만든다.2\. topping1라는 변수를 만들어서
문제링크dp1\. cnt에 각 숫자를 만들기 위한 횟수를 저장한다. (dp)2\. queue를 활용해 횟수별로 숫자를 꺼내서 y보다 같거나 작은 숫자가 만들어진다면 다시 큐에 담는다.3\. queue에서 꺼낸 숫자가 y면 끝낸다.4\. 만들수 있는 모든 숫자를 만들었
문제링크짝수의 경우에는 2진수의 마지막 자리가 1인 되는 경우, 즉 짝수보다 1큰 홀수가 된는 경우가 정답이다.홀수의 경우에는 뒤에서 부터 가장 가까운 곳에 있는 0을 찾아 1로 바꾸고 뒤의 1을 0으로 변경하면 2개 이하로 다른 비트의 숫자를 찾을 수 있다.위의 풀이
문제링크A array와 B array를 모두 순서대로 정렬한다.A와 B를 큰 수 부터 작은 순으로 조회하면서 현재 A array에서 조회하고 있는 값이 B에서 조회하는 값보다 작은 경우에만 승리했다고 생각하여 answer++를 해주고 해당 사원을 경기에 보냈기 때문에
문제링크탐욕법(Greedy)1\. routes를 routes\[i]\[1] (i번째 차량이 고속도로에서 나간 지점)을 기준으로 오름차순으로 정렬한다.2\. 차량의 진입 지점, 진출 지점은 -30,000 이상 30,000 이하이므로 초기 단속용 카메라 설치위치(limit
문제링크stack1\. 보조 컨테이너 벨트는 앞 뒤로 이동이 가능하지만 입구 외에 다른 면이 막혀 있어서 맨 앞의 상자만 뺄 수 있습니다(즉, 가장 마지막에 보조 컨테이너 벨트에 보관한 상자부터 꺼내게 됩니다).라는 조건을 통해 보조 컨테이너 벨트를 stack으로 구현
문제링크stack1\. bridge라는 이름의 queue를 다리의 길이 만큼 0으로 채워준다. (무게가 0인 트럭들이 있다고 생각한다.)2\. truck_weights를 순회하면서 아래와 같은 일을 진행한다.현재 다리위에 있는 트럭의 무게합 (truckSum) 에서 첫
문제링크수학, 구현1\. 기지국 왼쪽부분에 설치해야하는 기지국 개수를 구하였다.2\. 기지국 사이에 설치해야하는 기지국 개수를 구하였다.3\. 마지막 기지국 오른쪽 부분에 설치해야하는 기지국 개수를 구하였다.크게 위의 세부분으로 나눈 뒤 각각은 기지국이 설치 되어 있지
문제링크정렬1\. numbers의 원소를 int에서 string 형태로 변환한다.2\. 문제의 조건에 맞게 comparator를 활용하여 변경한다.3\. 모든 원소가 0인 경우를 고려하여 answer="0000" 와 같은 경우를 "0"으로 변경한다.\+) zeroCou
문제링크재귀1\. mark로 해당 부부의 0, 0 위치한 문자가 0인지 1인지 저장한다.2\. x, y로부터 각각 len 만큼 모두 mark와 같은 문자 인지 확인한다.3\. 같다면 해당 문자 개수를 1로 return 한다.4\. 만약 같지 않다면 4개의 구간으로 나눈
문제링크구현1\. len에 삼각형에 들어갈 숫자의 개수를 구한다. 변의 길이가 주어졌을 때, 1부터 변의 길이 n까지의 합이 정답이었다.2\. triagle, x, y등을 초기화한다.3\. dx, dy를 통해 이동방향을 미리 저장하여 초기화한다. (아래, 오른쪽, 북서
문제링크dfs1\. maps의 방문여부(isVisited), map의 크기 정보를 담은 N,M 정보, dx, dy(이동 방향 정보)를 초기화한다.2\. 이중 for문을 통해 위에서부터 오른쪽으로 한칸씩 이동하며 방문하지 않은 섬을 찾는다.(maps\[i].charAt(