본문 바로가기

Baekjoon

(29)
[Java] 백준 10159 : 저울 [문제] https://www.acmicpc.net/problem/10159 10159번: 저울 첫 줄에는 물건의 개수 N 이 주어지고, 둘째 줄에는 미리 측정된 물건 쌍의 개수 M이 주어진다. 단, 5 ≤ N ≤ 100 이고, 0 ≤ M ≤ 2,000이다. 다음 M개의 줄에 미리 측정된 비교 결과가 한 줄에 하나씩 www.acmicpc.net [풀이 과정] 무게가 서로 다른 N개의 물건이 있을 때 물건 i (1
[Java] 백준 21610 : 마법사 상어와 비바라기 [문제] https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net [풀이과정] 문제를 요약하자면 다음과 같다. 1. 맨 처음으로 비바라기를 시전하여 (N,1) , (N-2) , (N-1,1),(N-1,2) 비 구름을 만든다. (반복과정 2~5) 2. 모든 구름의 위치를 d방향으로 s칸 이동시킨다. 이동 후의 구름의 위치의 바구니 칸에 물의 양을 1 증가 시킨다. -이 때 신경써야 할 부분은 1번행과 N번 행이 연결되어 있고 1번 열과 N번 열이 ..
[Java] 백준 18111번 : 마인크래프트 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net [접근] 맨 처음에 푼 코드는 이러하다. 1) N X M 크기의 2차원 배열에 수를 저장하면서 최소 높이와 최대 높이를 구한다. 2) 최소높이 ~최대 높이 만큼의 반복문을 돌면서 만들어놓은 2차원 배열의 인덱스에 하나씩 접근하면서 - 땅의 높이(2차원 배열 값) 가 기준이 되는 높이 (h) 보다 높을 경우 , 인벤토리에 블록을 넣어야하기때문에 2초를 더하고 가지고 있는 블록수도 더하여 블록값을 ..
[Java] 백준 1929번 : 소수 구하기 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net [접근] M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하는 문제이다. 수의 범위가 주어졌기때문에 '에라토스테네스의 체'의 소수 구하는 방법을 이용하여 코드를 작성하였다. https://ko.wikipedia.org/wiki/에라토스테네스의_체 에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전 수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다. 알고리즘[편집] 2부터 ..
[Java] 백준 2751번 : 수 정렬하기 2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net [접근] 일단 이 문제는 값이 중복되지않아 counting sort 로 풀어보았다. [절댓값이 1,000,000보다 작거나 같은 수 ] 이니까 배열을 1,000,000의 2배로 받아서 인덱스를 이용하여 정렬을 할것이다. 배열의 1,000,000 부터가 0부터 이다. [코드] import java.io.BufferedReader; import java.io.IOException; impo..
[Java] 백준 10816번 : 숫자 카드 2 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net [접근] 먼저 이 문제는 이분탐색 , HashMap, Counting 등 다양한 풀이가 있는것 같다. 이분 탐색으로 푸는 것이 가장 빠른 코드는 아니지만 이분 탐색 공부를 할겸 이분탐색 방법으로 풀어보았다. 1) 상근이가 가진 카드를 정렬해준다 ( 오름차순으로 하였다.) 2) 하나씩 제시된 정수를 기준 으로 가장 낮은 위치에 있는 인덱스 번호를 찾는 low_Ind..
[Java] 백준 4949번 : 균형잡힌 세상 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net [접근] 이 문제는 9012번 문제와 살짝 비슷하다. (https://www.acmicpc.net/problem/9012) 이 문제와 다른점이 있다면 이번 문제에는 괄호의 종류가 늘었다는 것이다. 즉 신경써줘야 할 점이 생긴것이다. 1) ' ( [ ) ] ' 이와 같이 괄호가 성립이 안되는 문장이면 안된다. -> '(' or '[' 는 오는 순서대로 저장시킨다. ')' or ']' ..
[Java] 백준 1874번 : 스택 수열 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net [접근] (stack 을 이용한 설명) - 몇번 까지 넣었는지 저장하는 number - 받아온 입력값 stackNum 딱 두가지의 경우가 있다. 1. stackNum > number 인경우 ) 값을 number +1 부터 stackNum까지 스택에 넣어주고 마지막에 stackNum을 pop을 해준다. 그리고 numb..