전체 글 136

[백준 2740] 행렬 곱셈 (JAVA)

https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 삼중포문으로 행렬의 곱셈을 나타낼 수 있다. 첫 포문은 첫 행렬의 행을 나타내고 두번째 포문은 두번째 행렬의 열을 나타내고, 세번째 포문은 첫 행렬의 열, 두번째 행렬의 행을 나타낸다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util..

Java 2023.03.12

[백준 10830] 행렬 제곱(JAVA)

https://www.acmicpc.net/problem/10830 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net 이 문제를 풀기전에 아래의 두 문제를 먼저 풀으시는 것을 추천드립니다! 1. 행렬 곱셈 https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.n..

Java 2023.03.12

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