알고리즘 풀이(358)
-
[알고리즘][X] 숨바꼭질
https://www.acmicpc.net/submit/1697/72246857 로그인 www.acmicpc.net import java.io.IOException; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { private static class Node { private final int time; private final int position; public Node(int time, int position) { this.time = time; this.position = position; } public int getTime() { return time; } publ..
2024.01.23 -
[알고리즘][X] 배열 복원하기
https://www.acmicpc.net/problem/16967 16967번: 배열 복원하기 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import java.util.StringTokenizer; public class Main { public static void main(Stri..
2024.01.23 -
[알고리즘][X] 이모티콘
https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 참고해서 푼 풀이 - Queue interface의 구현체로 LinkedList가 있다는 사실을 알게 되었다. - Queue interface의 사용법(add, offer, remove, poll)을 배웠다. remove는 error throw하지만 poll은 하지 않는다. - 중요한 건 알고 있는 알고리즘을 어떻게 문제에 적용하는가이냐를 배웠다. - bfs에 visited 개념이 들어간다. 안들어..
2024.01.21 -
[알고리즘] 소용돌이 예쁘게 출력하기
https://www.acmicpc.net/problem/1022 1022번: 소용돌이 예쁘게 출력하기 첫째 줄에 네 정수 r1, c1, r2, c2가 주어진다. www.acmicpc.net 나의 풀이 - 좀 복잡하게 했다. - 코드가 지저분하기 때문에 리팩토링해보고 싶다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int r1 = sc.nextInt(); int c1 = sc.nextInt(); int r2 = sc.nextInt(); int c2 = sc.nextInt(); int maxR = Math.max(r1, r2) ..
2024.01.19 -
[알고리즘] 꼬마 정민
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long sum = 0; for (int i = 0; i < 3; i++) { long number = scanner.nextLong(); sum += number; } System.out.println(sum); } } 나의 풀이 - 10^12은 int가 못담는다. Reference https://www.acmicpc.net/problem/11382 11382번: 꼬마 정민 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다. ww..
2024.01.17 -
[알고리즘] 창용 마을 무리의 개수
나의 풀이 - connected components를 찾는 문제였다. - 로직은 크게 두 단계이다. - 시작할 위치를 정하고 dfs를 돌린다. 이때 방문되는 노드는 모두 하나의 무리가 된다. - 이를 반복하며 모든 노드가 방문 상태가 될때까지 진행한다. - 메소드로 세분화하여 메소드를 구현하였다. import java.util.Scanner; import java.util.ArrayList; import java.util.HashMap; import java.io.FileInputStream; // 방문하지 않은 노드 중 하나를 잡아서 bfs를 실행, 이걸 하며 방문한 노드를 묶으면 하나의 무리가 된다. // 이를 모든 노드를 방문할 때까지 반복한다. class Solution { public stati..
2024.01.07