java 62

백준(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

Shell로 BOJ VSCode Java 설정 자동화하기 (Mac 기준)

요새 특강 때문에 PS를 반복으로 하고 있다. PS용으로는 Eclipse와 IntelliJ는 좀 무거운 느낌이라서 VScode로 진행 중이다. 근데 이게 계속 하다보니 번거롭고 귀찮다. 그런데 또 나는 개발자다. 그러하니 자동화하자. VScode는 .vscode/launch.json 에서 실행/디버깅 설정을 관리한다. 문제를 풀기 위한 기본 폴더 + input.txt를 만들어주면서 동시에 해당 경로로 실행 설정을 가장 top으로 잡아주는 걸로 구현 Repository (폴더 구조) GitHub - TomAlgorismus/snippet: 코드 조각 코드 조각. Contribute to TomAlgorismus/snippet development by creating an account on GitHub...

Today_I_Learned 2024.01.17

백준(BOJ) 13251 : 조약돌 꺼내기 (자바, 파이썬)

13251번: 조약돌 꺼내기 첫째 줄에 뽑은 조약돌이 모두 같은 색일 확률을 출력한다. 정답과의 절대/상대 오차는 10-9까지 허용한다. www.acmicpc.net 설계 전체 경우의 수 계산: 상자에 있는 모든 돌들 중에서 K개를 뽑는 경우의 수(total)를 계산. 같은 색상의 돌을 뽑을 확률 계산: 각 색상별로 K개를 뽑을 경우의 확률을 계산하고, 이를 모두 더하여 총합(same)을 구함. 최종 확률 계산 및 출력: 같은 색상의 돌을 뽑을 총 확률(same)을 전체 경우의 수(total)로 나누어 최종 확률을 계산하고 출력. 조합 계산 함수 (getCombination): 조합(nCr)을 계산하기 위한 함수로, 더 큰 숫자에 대한 팩토리얼 계산을 피하기 위해 단순화된 조합 계산 방식을 사용. 구현 ..

Problem_Solving 2024.01.12

프로그래머스 : 하노이의 탑 (자바, 파이썬)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 재귀적으로 가장 큰 원판을 목적지 기둥으로 옮기고, 나머지 원판들을 중간 기둥을 이용해 재배치하는 과정을 반복 n 개의 원판을 from 기둥에서 to 기둥으로 이동시키는 로직을 재귀적으로 구현합니다. n == 1인 경우, 가장 작은 원판을 바로 to 기둥으로 옮깁니다. n > 1인 경우, n - 1개의 원판을 보조 기둥(여기서는 6 - from - to로 계산)으로 옮기고, 가장 큰 원판을 to 기둥으로 옮긴 후, 보조 기둥에 있는 원판들을 다시 to 기둥으로 옮깁니다. 구현 코드 자바(Java) imp..

Problem_Solving 2024.01.12

백준(BOJ) 15661 : 링크와 스타트 (자바, 파이썬)

15661번: 링크와 스타트 첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100 www.acmicpc.net 설계 N명의 팀원들 사이의 능력치 차이를 최소화하는 문제 문제 해결을 위해 백트래킹 알고리즘을 사용 각 팀원들의 능력치는 2차원 배열 S에 저장되며, 두 팀 간의 능력치 차이는 재귀적으로 계산 재귀 메서드 사용 start와 depth를 매개변수로 하여 현재 팀 구성과 깊이를 추적 현재 구성의 능력치 차이(currentScore)를 계산하고, 이를 minDiff와 비교하여 최소값을 갱신 depth가 N / 2에 도달하면 ..

Problem_Solving 2024.01.12