Algorithm

    백준[7569] - 토마토

    문제: https://www.acmicpc.net/problem/7569 분류: 그래프 탐색, BFS 난이도: G5 소요시간: 20m 자아성찰: N, M, H 3차원 배열에 대해 BFS을 이용해 풀 수 있는 문제로, 모두

    백준[16173] - 점프왕 쩰리 (Small)

    문제: https://www.acmicpc.net/problem/16173 분류: 그래프 이론, BFS, DFS, 브루트포스 난이도: S4 소요시간: 10m 자아성찰: 맵의 크기가 N x N (N 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import ..

    백준[16435] - 스네이크버드

    문제: https://www.acmicpc.net/problem/16435 분류: 정렬, 그리디 난이도: S5 소요시간: 5m 자아성찰: 이전에 알고리즘을 풀었을 때에도 그리디에 많이 약했었다. 가장 기초적인 그리디에 대해 다시 이해하고자 쉬운 문제로 골랐다. 내 기준 그리디의 핵심은 '문제를 스스로 꼬아 풀지 말자' 인데, 이 문제가 그 핵심을 잘 적용할 수 있었던 문제인 것 같다. N 단순하게 정렬로 가장 높이가 낮은 과일부터 차례대로 먹어가며 길이를 늘린다. 문제가 아무리 어려워보여도 일단 단순하게 생각하는 습관을 길러보자. (브루트포스, 그리디) 단순함을 잘 사용하면 생각보다 쉽게 풀린다! 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기..

    백준[1543] - 문서 검색

    문제: https://www.acmicpc.net/problem/1543 분류: 문자열, 브루트포스 난이도: S5 소요시간: 15m 자아성찰: 시간복잡도는 O(NM), N

    백준[4673] - 셀프 넘버

    문제: https://www.acmicpc.net/problem/4673 분류: 수학, 구현, 브루트포스 난이도: S5 소요시간: 10m 자아성찰: 문제를 보았을 때 시간복잡도는 O(n)으로, 브루트포스로 풀 수 있음을 알았다. (n

    백준[1436] - 영화감독 숌

    문제 : https://www.acmicpc.net/problem/1436 분류: 브루트포스 난이도: S5 소요시간 : 10m 자아성찰 5개월만에 다시 알고리즘을 풀어보았는데, 머리가 굳었다. 오히려 이전에 자주 풀었어서 더 어렵게 생각하는 경향이 있어 오래걸렸다.. 브루트포스는 최대한 단순하게 생각하자. 감을 다시 찾자. 브루트포스부터 천천히 머리를 녹이자. 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net import java.io.BufferedReader; import java.io.IOExceptio..

    백준[3980] - 선발 명단 (Kotlin)

    import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import kotlin.math.max fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStreamWriter(System.out)) val stat = Array(11) { emptyArray() } val selected = Array(11) { 0 } var max = Int.MIN_VALUE val N = br.readLine().toInt() ..

    백준[10974] - 모든 순열 (Kotlin)

    import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStreamWriter(System.out)) val N = br.readLine().toInt() val visited = Array(N+1) { 0 } val selected = Array(N) { 0 } fun dfs(k: Int) { if (k >= N) { for (i in selected.indi..

    백준[2580] - 스도쿠 (Kotlin)

    import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter fun main() { var isFinished = false val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStreamWriter(System.out)) val board = Array(9) { mutableListOf() } for (i in 0 until 9) { board[i] = br.readLine().split(" ").map { it.toInt() }.toMu..

    백준[6443] - 애너그램 (Kotlin)

    import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStreamWriter(System.out)) var strs = charArrayOf() var visited = arrayOf() var selected = arrayOf() fun dfs(k: Int) { if (k == strs.size) { for (i in strs.indices) { bw.wri..