본문 바로가기

Algorithm76

[알고리즘] 순열 사이클 (백준 10451번) 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net DFS를 이용하여 그래프의 사이클을 찾는 문제다. 사이클 찾는 문제는 꽤 자주 나오지만 막상 풀려고 하면 헷갈린다. Solution import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import java.util.* .. 2020. 10. 6.
[알고리즘] 알고스팟 (백준 1261번) 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 처음엔 이분탐색을 이용해야하는 줄 알았는데 시간 초과, 메모리 초과가 났다. 이후에 BFS로 풀었는데 원래는 다익스트라 문제다. 결론적으로 다익스트라가 시간, 메모리가 더 적게 걸린다. Solution 1. BFS 버전 import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWrite.. 2020. 10. 6.
[알고리즘] DSLR (백준 9019번) 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 � www.acmicpc.net 특정 목적지점까지 가는데 필요한 최소해를 구하는 BFS 완전탐색 문제다. Solution 전체 코드 import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import java.lang.StringBuilder import java.util.* var br = BufferedR.. 2020. 10. 5.
[알고리즘] 뱀 (백준 3190번) 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 삼성 기출의 시뮬레이션 문제다. 지도 상에서 뱀이 움직이는 것을 구현해야 하는 문제다. Solution 1. 전역 변수 var N = 0 var K = 0 lateinit var map : Array val UP = 0 val DOWN = 1 val LEFT = 2 val RIGHT = 3 var orders : Queue = LinkedList() var snake = ArrayList() 기본 변수들과 상하좌우를 나타내는 상수, 명령들을 보관하고 있는 큐와 뱀을 표.. 2020. 10. 5.