no image
[B0J]일곱 난쟁이(2309번)
티어 : Bronze 1정답여부 : 오답알고리즘 유형 : 정렬 , 브루트포스 알고리즘시간 제한 : 1초💡문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.  💡입력아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러..
2024.10.01
no image
[B0J]약수 구하기(2501번)
티어 : Bronze 3정답여부 : 정답알고리즘 유형 : 수학 , 브루트포스 알고리즘시간 제한 : 1초💡문제어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면6 ÷ 1 = 6 … 06 ÷ 2 = 3 … 06 ÷ 3 = 2 … 06 ÷ 4 = 1 … 26 ÷ 5 = 1 … 16 ÷ 6 = 1 … 0그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다.두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.  💡입력첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. 💡출력첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력..
2024.10.01
no image
[B0J]덱(10866번)
티어 : Sliver 4정답여부 : 정답알고리즘 유형 : 덱 , 자료구조 , 구현시간 제한 : 0.5초💡문제정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여덟 가지이다.push_front X: 정수 X를 덱의 앞에 넣는다.push_back X: 정수 X를 덱의 뒤에 넣는다.pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 덱에 들어있는 정수의 개수를 출력한다.empty: 덱이 비어있으면 1을, 아니면 0을 출력한다...
2024.09.27
no image
[B0J]큐(10845번)
티어 : Sliver 4정답여부 : 정답알고리즘 유형 : 큐 , 자료구조시간 제한 : 0.5초💡문제정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 큐에 들어있는 정수의 개수를 출력한다.empty: 큐가 비어있으면 1, 아니면 0을 출력한다.front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.💡입력..
2024.09.26
no image
[B0J]스택 수열(1874번)
티어 : Sliver 2정답여부 : 오답알고리즘 유형 : 스택 , 자료구조시간 제한 : 2초💡문제스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다.1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. ..
2024.09.25
no image
[PGM]K번째 수
티어 : Lv. 1정답여부 : 정답💡문제● K번째 수 💡입출력 예 💡문제[i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소를 array 적용했을 때 나온 결과를 배열을 출력하면 되는 문제i : 시작j : 끝k : 위치 💡알고리즘 설계각 commands 길이만큼 빼준다.a , b , c : 값을 담아준다.각 a부터 b 만큼 배열을 담아주고 그 배열의 정렬다음 c 위치에 있는 배열을 빼서 answer에 담아준다. 💡시간복잡도O(NlogN) 💡코드import java.util.Arrays;class Solution { public int[] solution(int[] array, int[][] commands) { int[]..
2024.09.12
no image
[PGM]전화번호 목록
티어 : Lv. 2정답여부 : 오답💡문제● 전화번호 목록 💡입출력 예 💡문제 분석 요약 각 번호들이 있는데 접두사가 같은 번호가 있을경우 false 💡알고리즘 설계hashset : 번호를 담을 값각 번호를 하나씩 빼줌각 번호의 접두사를 만들어 비교있는경우를 false리턴 없는 경우 hash에 추가하고 true추가 💡시간복잡도O(NlogN) 💡코드import java.util.HashSet;class Solution { public boolean solution(String[] phone_book) { HashSet hashset = new HashSet(); for(String phone : phone_book) { for(int i = 1; i  ..
2024.09.11
no image
[PGM]같은 숫자는 싫어
티어 : Lv. 1정답여부 : 정답💡문제● 같은 숫자는 싫어 💡입출력 예 💡문제 연속으로 오는 숫자의 중복을 제거하고 숫자를 출력하면 되는 문제 💡알고리즘 설계스택이 비어있지 않고 스택의 끝자리 값이 같으면 패스그렇지 않은 경우 스택에 값을 넣어줌index에 끝자리 만큼 넣어줌스택은 위에서 부터 값이 나오기에 그 값을 answer 뒤에서 → 앞으로 배열에 넣어줌 💡시간복잡도O(N) 💡코드import java.util.*;class Solution { public int[] solution(int[] arr) { Stack stack = new Stack(); for(int i : arr) { if(!stack.isEmpty() && i == stac..
2024.09.11
no image
[B0J]1로 만들기(1463번)
티어 : Sliver 3정답여부 : 오답알고리즘 유형 : 다이나믹 프로그래밍시간 제한 : 0.15초💡문제정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 💡입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 💡출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 💡예제 입력12 💡예제 출력11 💡예제 입력210 💡예제 출력23💡문제 분석 입력받은 숫자의 3, 2 로 나누고 1을 뺄수 있으며 각 숫자가 1이 될 때까지의 최소의 ..
2024.09.09