전체 글 83

백준(BOJ) 17219 : 비밀번호 찾기 (실버4) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/172193줄 요약저장된 사이트 주소의 수 N과 비밀번호를 찾으려는 사이트 주소의 수 M을 입력받고, N개의 줄에 걸쳐 사이트 주소와 비밀번호를 입력받아 HashMap에 저장합니다.M개의 줄에 걸쳐 비밀번호를 찾으려는 사이트 주소를 입력받습니다.입력받은 사이트 주소를 이용하여 HashMap에서 해당 사이트 주소의 비밀번호를 찾아 출력합니다.코드// package boj17219;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { // 입력 // 입력 파일로부터 데이터를 ..

Problem_Solving 2024.05.01

백준(BOJ) 1764 : 듣보잡 (실버4) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/17643줄 요약듣도 못한 사람의 수 N과 보도 못한 사람의 수 M을 입력받습니다.두 개의 HashSet을 사용하여 듣도 못한 사람의 명단과 보도 못한 사람의 명단을 저장하고, 두 HashSet의 교집합을 구하여 듣보잡의 명단을 생성합니다.듣보잡의 수와 명단을 사전순으로 정렬하여 출력합니다.코드// package boj1764;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { // 입력 파일로부터 데이터를 읽어오기 위해 파일 입력 스트림 설정 // System.s..

Problem_Solving 2024.05.01

백준(BOJ) 1620 : 나는야 포켓몬 마스터 이다솜 (실버4) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/16203줄 요약포켓몬 도감에 수록된 포켓몬의 개수 N과 맞춰야 하는 문제의 개수 M을 입력받습니다.두 개의 HashMap을 사용하여 포켓몬 이름과 번호를 매핑하여 저장합니다.M개의 문제를 입력받아 해당하는 포켓몬의 번호 또는 이름을 찾아 출력합니다.코드// package boj1620;import java.io.*;import java.util.*;import java.util.stream.Stream;public class Main { public static void main(String[] args) throws Exception { // 입력 파일로부터 데이터를 읽어오기 위해 파일 입력 스트림 설정 // ..

Problem_Solving 2024.05.01

백준(BOJ) 1931 : 회의실 배정 (실버1) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/19313줄 요약회의 정보를 입력받아 2차원 배열에 저장합니다.회의 끝나는 시간을 기준으로 오름차순 정렬하고, 끝나는 시간이 같은 경우 시작 시간을 기준으로 오름차순 정렬합니다.이전 회의의 끝나는 시간보다 현재 회의의 시작 시간이 같거나 늦으면 선택하여 최대 회의 개수를 구합니다.코드// package boj1931;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws Exception { // 입력 // System.setIn(new FileInputStream("src/input.txt")); Buffered..

Problem_Solving 2024.04.30

백준(BOJ) 11399 : ATM (실버4) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/113993줄 요약입력받은 N개의 정수를 오름차순으로 정렬하여 배열 P에 저장합니다.배열 P를 이용하여 누적 합 배열 prefixSum을 계산합니다.누적 합 배열 prefixSum의 모든 원소를 더하여 총 대기 시간을 계산하고 출력합니다.코드// package boj11339;import java.io.*;import java.util.Arrays;import java.util.stream.Stream;public class Main { public static void main(String[] args) throws Exception { // 입력 파일로부터 데이터를 읽어오기 위해 파일 입력 스트림 설정 // S..

Problem_Solving 2024.04.30

백준(BOJ) 1018 : 체스판 다시 칠하기 (실버4) / 자바(Java) 풀이

문제https://www.acmicpc.net/submit/1018/776624653줄 요약체스판을 만들기 위해 주어진 보드에서 8x8 크기로 잘라내는 모든 경우를 탐색합니다.각 경우에 대해 첫 번째 칸이 흰색인 경우와 검은색인 경우 두 가지를 고려하여 수정 횟수를 계산합니다.모든 경우 중 최소 수정 횟수를 출력합니다.코드package boj1018;import java.io.*;public class Main { public static void main(String[] args) throws Exception { // 입력 파일로부터 입력을 받기 위해 FileInputStream 사용 System.setIn(new FileInputStream("src/input.txt"..

Problem_Solving 2024.04.30

백준(BOJ) 1436 : 영화감독 숌 (실버5) / 자바(Java) 풀이

문제https://www.acmicpc.net/problem/14363줄 요약입력값 N을 받아와서 N번째 종말의 숫자를 찾는 문제를 해결합니다.666부터 시작하여 1씩 증가시키면서, 숫자에 "666"이 포함되어 있는지 확인합니다.N번째로 "666"이 포함된 숫자를 찾으면 해당 숫자를 출력하고 프로그램을 종료합니다.코드// package boj1436;import java.io.*;public class Main { public static void main(String[] args) throws Exception { // 입력 // 로컬에서 테스트할 때 사용하는 입력 파일 설정 // System.setIn(new FileInputStream("src/input...

Problem_Solving 2024.04.30

프로그래머스 : 순위 검색 (자바, 파이썬)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 브루트 포스로 가능한 모든 조건의 조합을 생성하고, 이진 탐색을 통해 효율적으로 해당 조건을 만족하는 지원자 수를 찾아냄 각 info 문자열에 대해 가능한 모든 조건의 조합을 생성하고, 해당 조건에 해당하는 점수를 Map에 저장 Map의 각 값(점수 리스트)를 오름차순으로 정렬 각 query에 대해 해당 조건을 만족하는 점수의 개수를 찾기 위해 이진 탐색을 사용 이진 탐색을 통해 주어진 점수 조건을 만족하는 지원자의 수를 계산하여 결과 배열에 저장 구현 코드 자바(Java) // package pg724..

Problem_Solving 2024.01.25

백준(BOJ) 2512 : 예산 (자바, 파이썬)

2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 설계 이진 탐색(Binary Search)을 사용하여 예산 문제를 해결. 각 지방의 예산 요청을 받아 총 예산 범위 내에서 가능한 최대의 예산 상한액을 찾음. 예산의 최댓값을 초과하지 않는 범위에서 가능한 가장 큰 상한액을 찾아내는 것이 목표 탐색 범위를 절반씩 줄여나가면서 빠르게 최적의 해를 찾음 구현 코드 자바(Java) // package boj2512; import java.util.*; import java.io.*; public class Mai..

Problem_Solving 2024.01.24

프로그래머스 : 이진 변환 반복하기 (자바, 파이썬)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 문자열 s를 이진 변환하는 과정을 거쳐, 모든 0을 제거하고, 남은 1들의 개수에 대한 이진수로 변환하는 과정을 반복 각 변환 과정에서 제거된 0의 개수와 변환 횟수를 계산하여 반환. 이진 변환 과정은 문자열을 순회하면서 0을 제거하고, 남은 1의 개수를 이진수 형태로 변환하는 방식으로 진행. while 반복문을 사용하여 주어진 조건이 충족될 때까지 변환 과정을 반복하고, Integer.toBinaryString 메서드를 활용하여 정수를 이진수 문자열로 변환. 구현 코드 자바(Java) // packag..

Problem_Solving 2024.01.23