Java 119

[백준 1474] 밑 줄 (JAVA)

https://www.acmicpc.net/problem/1474 1474번: 밑 줄 세준이는 N개의 영어 단어를 이용해 길이가 M인 새로운 단어를 만들려고 한다. 새로운 단어는 N개의 단어를 순서대로 이어 붙이고, 각 단어의 사이에 _을 넣어서 만든다. 이렇게 만든 새로운 단어 www.acmicpc.net 공통적으로 가져야 할 밑줄 개수, 추가적으로 더 붙어야 할 소문자 앞의 개수를 구한다. 만일, 소문자가 없어서 추가적인 개수가 남을 경우에는 대문자앞에 붙여줘야한다!! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import jav..

Java 2023.03.09

[백준 11659] 구간 합 구하기 4 (JAVA)

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 자신의 위치까지의 합을 구한 배열을 사용하여 문제를 해결할 수 있다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(..

Java 2023.03.09

[백준 1389] 케빈 베이컨의 6단계 법칙 (JAVA)

https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 이 문제는 두가지 방법으로 해결가능하다. 1) BFS 2) 플로이드 워셜 https://chanhuiseok.github.io/posts/algo-50/ 알고리즘 - 플로이드-워셜(Floyd-Warshall) 알고리즘 컴퓨터/IT/알고리즘 정리 블로그 chanhuiseok.github.io 1. BFS import java.io.BufferedRea..

Java 2023.03.06

[백준 25757] 임스와 함께하는 미니게임 (JAVA)

https://www.acmicpc.net/problem/25757 25757번: 임스와 함께하는 미니게임 첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 $N$과 같이 플레이할 게임의 종류가 주어진다. $(1 \le N \le 100\,000)$ 두 번째 줄부터 $N$개의 줄에는 같이 플레이하고자 하는 사람들 www.acmicpc.net Set을 사용하여 이전에 함께 게임했던 사람인지 체크하면 간단하게 풀 수 있었다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; import java...

Java 2023.03.01

[백준 21921] 블로그 (JAVA)

https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 슬라이딩 윈도우 기법을 사용하는 문제이다. 1. 0~x 까지의 합을 sum과 max값으로 넣는다. 2. 1~x+1 , 2~x+2 ... 의 합들을 비교해야하므로, 1~x+1 합 = sum - 0번째 값 + x+1번째 값 . . . 이렇게 계산한다 ! import java.io.BufferedReader; import java.io.IOException; import java.io.Input..

Java 2023.02.28

[백준 23971] ZOAC4 (JAVA)

https://www.acmicpc.net/problem/23971 23971번: ZOAC 4 i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크 www.acmicpc.net 백준의 문제집 중 "IT기업 및 대기업 계열사 코테보면서 비슷했던 문제들(지속적으로 업데이트 중)" 문제집의 제일 첫번째 문제이다. 행과 열을 따로 보아, 앉을 수 있는 행,열의 개수를 계산한다. 한 자리를 앉고 n or m만큼 자리를 띄우기 때문에 -> n+1 or m+1 행 or 열길이에 n+1 or m+1이 몇번 들어 갈 수 있는지 -> h..

Java 2023.02.28

[백준 20920] 영단어 암기는 괴로워 (JAVA)

https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 객체를 만들고, Map과 ArrayList를 사용하여 문제를 해결하였다. Map의 키는 단어, 값은 단어가 나온 수를 넣는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arra..

Java 2023.02.22

[백준 10825] 국영수 (JAVA)

https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net Student 객체를 생성하여 문제를 풀었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static class Student { String name; int a; //국 ..

Java 2023.02.21

[백준 11286] 절댓값 힙 (JAVA)

https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 우선순위 큐를 사용하여 해결할 수 있었다. 음수일 경우에는 q2에 넣었으며 q2는 내림차순 정렬된 큐이다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util.PriorityQue..

Java 2023.02.21