본문 바로가기

백준

(62)
[백준] ACM 호텔 (10250번) 코드 힌트문제 해결 접근주어진 문제는 특정 층과 방 수를 가진 호텔에서 손님을 배정하는 방 번호를 계산하는 것입니다.각 손님은 특정 층의 특정 방에 배정되어야 하며, 방 번호는 층 수와 방 번호를 조합하여 생성됩니다.층과 방 번호 계산하기층(floor)은 손님 번호 n을 총 층수 h로 나눈 나머지에 1을 더하여 결정합니다.방 번호(room)는 손님 번호 n을 총 층수 h로 나눈 몫에 1을 더하여 결정합니다.문자열 포맷팅String.format("%d%02d", floor, room)을 사용하여 방 번호를 두 자리로 포맷합니다. floor는 그대로 두 자리 수로 표시하고, room은 두 자리 수로 표시되며, 부족한 자리는 0으로 채워집니다.  정답은 더보기 클릭더보기import java.io.*;publi..
[백준] 팩토리얼 10872번 코드 힌트재귀함수 사용하기재귀함수는 함수가 자기 자신을 호출하는 함수입니다. 이 문제에서는 팩토리얼을 계산하기 위해 재귀함수를 사용합니다.기본값 반환하기재귀함수에서 종료 조건을 설정하는 것이 중요합니다. n이 0이 될 때 1을 반환하도록 설정합니다. 이것은 팩토리얼의 기본값입니다 (0! = 1).재귀 호출하기재귀 호출은 현재 값을 다음 재귀 호출의 결과와 곱하는 방식으로 진행됩니다. 예를 들어, n이 5일 때 5 * factorial(4)을 호출합니다. 이렇게 재귀적으로 호출하여 1까지 계산합니다.BufferedReader와 BufferedWriter 사용하기BufferedReader를 사용하여 입력 값을 읽고, BufferedWriter를 사용하여 결과를 출력합니다. 이러한 방식은 입출력 속도를 최적화..
[백준] OX퀴즈 8958번 코드 힌트문제 이해:이 문제는 주어진 OX 퀴즈에서 연속된 'O'의 점수를 계산하는 것입니다. 'O'가 연속될수록 점수가 높아지며, 'X'를 만나면 점수가 초기화됩니다.점수 계산 방법:각 문자열을 순차적으로 검사하면서 'O'가 나타날 때마다 이전의 점수에 1을 더합니다. 예를 들어, 'OOXOO'라면 첫 번째 'O'는 1점, 두 번째 'O'는 2점, 세 번째 'O'는 1점, 네 번째 'O'는 2점이 됩니다.연속된 O 관리:연속된 'O'의 개수를 변수로 관리합니다. 'O'가 나올 때마다 변수를 증가시키고, 'X'가 나오면 이를 0으로 초기화합니다.입출력 처리:BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 처리합니다. 이는 효율적인 입출력을 보장하기 위해 사용됩니다.다중 테..
[백준] 더하기 사이클 1110번 코드 힌트문제 이해:이 문제는 주어진 숫자를 특정 규칙에 따라 변형한 후, 다시 원래의 숫자로 돌아올 때까지 몇 번의 변형이 필요한지를 묻는 문제입니다.변형 규칙:주어진 숫자의 각 자리수를 분리하여 더한 뒤, 그 결과를 이용해 새로운 숫자를 생성합니다.예를 들어, 26이라는 숫자가 주어지면, 2와 6을 더해 8이 되고, 마지막 자리 6과 8을 결합해 새로운 숫자 68이 됩니다.사이클의 길이 계산:반복문을 사용하여 숫자를 변형하고, 그 과정에서 원래의 숫자로 돌아올 때까지 변형 횟수를 기록합니다.변형이 끝난 후, 사이클의 길이(변형 횟수)를 출력합니다.입출력 처리:BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 처리합니다. 이는 대량의 데이터를 효율적으로 처리하기 위함입니다..
[백준] 괄호 9012번 코드 힌트입력 및 출력 처리:BufferedReader와 BufferedWriter를 사용하여 입력을 빠르게 읽고 출력을 효율적으로 처리합니다.스택 사용:스택의 역할: 괄호 문자열을 처리하기 위해 스택을 사용합니다. 열린 괄호는 스택에 쌓고, 닫는 괄호가 나오면 스택에서 열린 괄호를 제거합니다.스택의 상태 확인: 스택이 비어있으면 모든 괄호가 올바르게 짝지어졌다는 의미입니다. 비어있지 않으면, 괄호가 잘못 짝지어진 것입니다.문자열 처리:문자 추출: 문자열에서 각 문자를 추출합니다.문자 비교 및 스택 조작: 열린 괄호가 스택에 쌓이고, 닫는 괄호가 스택의 가장 위에 있는 열린 괄호와 쌍을 이루면 스택에서 제거합니다.결과 판단:모든 문자를 처리한 후, 스택이 비어 있으면 괄호 문자열이 올바르게 짝지어졌다는 ..
[백준] 제로 10773번 코드 힌트입력 및 출력 처리:BufferedReader를 사용하여 입력을 효율적으로 받고, BufferedWriter를 사용하여 출력 속도를 높입니다.스택 연산 처리:Push (정수 입력): 입력된 정수를 스택에 추가합니다.Pop (입력 0): 스택에서 가장 위의 정수를 제거합니다. 스택이 비어있지 않을 때만 제거합니다.결과 계산:스택에 남아있는 모든 정수의 합을 계산합니다. 스택이 비어있을 때까지 pop하여 정수를 추출하고, 그 값을 result 변수에 추가합니다.최종 결과 출력:계산된 합계를 출력합니다.  추가적인 정보스택이 비어있을 때 pop 호출 주의: 문제의 가정에 따라 스택이 비어있을 경우의 처리도 고려해야 하지만, 여기서는 문제 요구에 따라 비어있지 않다고 가정하고 구현되었습니다.정답은 더보..
[백준] 스택 2 28278번 코드 힌트입력 및 출력 처리:BufferedReader를 사용하여 입력을 효율적으로 받고, BufferedWriter를 사용하여 출력 속도를 높입니다.스택 연산 처리:Push (1): 입력된 정수를 스택에 추가합니다.Pop (2): 스택에서 가장 위의 정수를 제거하고 출력합니다. 스택이 비어있으면 -1을 출력합니다.Size (3): 스택의 현재 크기를 출력합니다.IsEmpty (4): 스택이 비어있으면 1, 그렇지 않으면 0을 출력합니다.Peek (5): 스택의 가장 상단에 있는 정수를 출력합니다. 스택이 비어있으면 -1을 출력합니다.입력 분리 및 처리:String.split(" ") 메서드를 사용하여 공백을 기준으로 입력 문자열을 나누고, 명령어와 관련 값을 처리합니다. 정답은 더보기 클릭더보기impo..
[백준] 그림 1926번 문제 힌트BFS 방법으로 풀기큐(Queue)를 이용하여 그림을 찾습니다.(i, j) 위치에서 그림을 찾기 시작하여, 상하좌우 인접한 1들을 큐에 넣고 방문 처리합니다.큐가 비어질 때까지 반복하며 그림의 크기를 계산합니다.DFS 방법으로 풀기스택(Stack)을 이용하거나 재귀 호출을 통해 그림을 찾습니다.(i, j) 위치에서 그림을 찾기 시작하여, 상하좌우 인접한 1들을 스택에 넣고 방문 처리합니다.스택이 비어질 때까지 반복하며 그림의 크기를 계산합니다.방문 유무 파악하기도화지와 같은 크기의 boolean[][] 배열을 사용하여 true, false를 이용하면 쉽게 구할 수 있습니다.BFS와 DFS로 해결하는 방법BFS로 해결하는 방법도화지를 탐색하면서 방문하지 않은 1을 찾습니다.찾으면 큐를 사용하여 B..