본문 바로가기

728x90

백준

(52)
[백준] 단어 정렬 (1181번) 코드 힌트입력 처리:입력 스트림을 설정하여 테스트 케이스의 수를 읽습니다.각 문자열을 읽어서 중복되지 않도록 저장할 자료구조를 사용합니다.중복 제거:중복된 항목이 허용되지 않는 자료구조를 사용하여 입력된 문자열을 저장합니다. 이 자료구조는 자동으로 중복된 항목을 제거합니다.정렬 준비:저장된 문자열을 정렬하기 위해 리스트로 변환합니다.정렬 기준 설정:문자열을 길이로 우선 정렬하며, 길이가 같을 경우에는 사전순으로 정렬합니다. 두 가지 기준을 사용하여 정렬을 수행합니다.출력:정렬된 리스트의 각 문자열을 출력 스트림을 통해 출력합니다. 출력이 완료된 후 스트림을 닫아 모든 데이터가 제대로 출력되도록 합니다. 정답은 더보기 클릭더보기import java.io.*;import java.util.*;public c..
[백준] 나이순 정렬 (10814번) 코드 힌트입력 처리:데이터를 효율적으로 읽기 위해 입력 스트림을 설정합니다. 첫 번째 입력 값은 총 데이터의 수를 나타냅니다.각 데이터 항목을 두 부분으로 나누어 처리합니다: 첫 번째 부분은 숫자, 두 번째 부분은 문자열입니다.정보 저장:숫자와 문자열 정보를 각각 두 개의 별도 배열에 저장합니다. 숫자는 정렬할 수 있는 배열에, 문자열은 관련된 이름을 저장할 배열에 담습니다.정렬:숫자 배열의 복사본을 만들어 정렬합니다. 이를 통해 숫자들을 오름차순으로 정렬할 수 있습니다.출력 준비:정렬된 숫자 배열을 순회하면서 원본 배열에서 숫자와 관련된 문자열을 찾아 출력합니다. 숫자가 중복되면 처리하지 않기 위해 해당 항목은 무시합니다.결과 출력:준비된 출력 결과를 스트림을 통해 출력합니다. 모든 데이터가 처리된 후..
[백준] 터렛 (1002번) 코드 힌트두 원의 중심이 같을 때:반지름이 같을 경우: 두 원이 완전히 겹치며, 무한히 많은 교점이 존재할 수 있습니다. 이 경우 교점의 개수를 -1로 출력합니다.반지름이 다를 경우: 두 원은 동심원이지만 겹치지 않으므로 교점이 없습니다. 이 경우 0을 출력합니다.두 원의 중심이 다를 때:원들이 서로 겹치지 않는 경우:서로 떨어져 있는 경우: 두 원의 중심 사이의 거리 d가 두 원의 반지름 합 r1 + r2보다 크면, 원들은 겹치지 않으므로 교점이 없습니다.한 원이 다른 원의 내부에 있지만 접하지 않는 경우: 두 원의 중심 사이의 거리 d가 큰 원의 반지름에서 작은 원의 반지름을 뺀 값보다 작으면, 교점이 없습니다.원들이 한 점에서 접하는 경우:외접: 두 원의 중심 사이의 거리 d가 두 반지름의 합과 같..
[백준] 스택 10828번 코드 힌트Stack 사용하기Stack은 LIFO(Last In, First Out) 구조로, 나중에 들어온 데이터가 먼저 나가는 방식입니다. 스택을 사용하면 데이터를 추가(push), 제거(pop), 확인(peek)할 수 있습니다.push 명령어 처리하기push 명령어가 입력되면, 스택에 새로운 값을 추가해야 합니다. 명령어에 따라 입력된 값을 스택에 넣습니다.top 명령어 처리하기top 명령어가 입력되면, 스택의 가장 위에 있는 값을 확인합니다. 스택이 비어 있지 않은 경우에만 이 명령어를 처리하며, 가장 위의 값을 반환합니다.size 명령어 처리하기size 명령어가 입력되면, 현재 스택에 저장된 요소의 개수를 반환합니다. 이 개수를 반환하여 출력합니다.empty 명령어 처리하기empty 명령어가 입력..
[백준] 별 찍기 - 3 (2440번) 코드 힌트간단한 반복문 사용하기주어진 숫자 n부터 시작해 1씩 감소하면서 반복문을 실행합니다.각 줄에 출력할 별(*)의 개수는 반복문의 현재 값에 해당합니다.String.repeat() 메서드 사용하기 혹은 for문 사용하기String.repeat(int count) 메서드는 문자열을 지정된 횟수만큼 반복하여 새로운 문자열을 반환합니다. 이 예제에서는 * 문자를 반복하여 별을 출력합니다.혹은 문자열 변수를 생성하여 += "*"를 i번만큼 추가하며 j문이 종료되었을 때 출력합니다.  정답은 더보기 클릭더보기import java.io.*;public class Main { public static void main(String[] args) throws NumberFormatException, IOEx..
[백준] 피보나치 수 5 (10870번) 코드 힌트재귀를 이용한 피보나치 수열 계산피보나치 수열은 이전 두 항의 합으로 현재 항을 계산합니다.이 문제에서는 재귀를 사용하여 피보나치 수를 계산합니다.재귀 함수 구현하기함수 pibo(int n)은 피보나치 수열의 n번째 항을 계산합니다.기본 사례로 n이 0일 때와 1일 때의 값을 직접 반환합니다.그 외의 경우에는 pibo(n-1)과 pibo(n-2)를 재귀적으로 호출하여 두 값의 합을 반환합니다. 정답은 더보기 클릭더보기import java.io.*;public class Main { public static void main(String[] args) throws NumberFormatException, IOException { // 입력을 받기 위해 BufferedReader ..
[백준] 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를 사용하여 결과를 출력합니다. 이러한 방식은 입출력 속도를 최적화..

728x90