알고리즘 (63) 썸네일형 리스트형 백준 2606-바이러스(Kotlin) https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 문제 접근 딱 그래프 탐색을 할 수 있는지를 물어보는 문제 시간복잡도 인접 리스트를 활용한dfs로 계산시 O(V+E)인데, 간선이 얼마나 주어지는 지를 모르겠다.. 인접 행렬로 구현하면 O(V^2)인데, 이때 V(노드, 여기선 컴퓨터의 수)는 100이하니깐 100^2으로 여유롭다. 그보다도 O(V+E)가 더 작으니깐 어떤걸쓰든 그래프 탐색을 할 줄 아느냐를 물어보는 문제인듯 인접리스트 + DFS로 구현.. 백준 1260-DFS와 BFS(Kotlin) https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 접근 기본적으로 dfs와 bfs를 구현하는 문제입니다. 처음 dfs와 bfs를 연습할때 구현하는 방법을 연습하기 좋아보입니다. 정답코드 import java.util.* var node = 0 var g = Array(node+1){ArrayList()} val check = BooleanArray(1001) var que: Queue = LinkedLi.. 프로그래머스 lv2 - 타겟넘버(Kotlin) https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 주어진 수들을 더하거나 빼서 target넘버를 만드는 경우의 수를 구하는 문제 dfs를 재귀함수로 구현하여 배열안의 값을 하나씩 더하거나 빼서 target과 같으면 경우의 수를++해주는 식으로 구현함 1. 경우의 수 계산 최악의 경우에 수행할 연산 횟수를 계산해서 재귀함수/완전탐색을 사용해도 될지 확인 시간복잡도 numbers의 최대 개수는 20개 이고 한 개당 가능한 경우의 수는 2가.. 백준 2576 색종이-2(Kotlin) https://www.acmicpc.net/problem/2567 2567번: 색종이 - 2 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 문제 접근 검은색 영역의 둘레를 구하는 문제 하얀 영역은 0 검은 영역은 1로 처리 1에 인접한 0의 개수를 구하는 문제 정답 코드 import java.util.* fun main(args: Array): Unit = with(Scanner(System.`in`)) { //이차원 배열 위에 0과 1로 표시 val arr = Array(101){IntArray(101)} var n = next.. 백준 2246 - 콘도 선정(Kotlin) https://www.acmicpc.net/problem/2246 2246번: 콘도 선정 첫째 줄에 콘도의 개수를 나타내는 자연수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 콘도에 대한 정보를 나타내는 두 정수 D(1 ≤ D ≤ 10,000), C(1 ≤ C ≤ 10,000)가 주어진다. D는 그 콘도의 www.acmicpc.net 문제 접근 입력값을 모두 비교해야되기때문에 배열로 저장 후보군이 될 수 없는 경우는 건너뛰어가며 가능한 경우의 수를 셈 정답 코드 import java.util.* fun main(args: Array): Unit = with(Scanner(System.`in`)) { val n = nextInt() //1. 더 가까운데 숙박비가 더 싼 경우 //2... 백준 1051-숫자 정사각형(Kotlin) https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 문제 접근 문제 조건에 맞는 정사각형 중 크기가 최대인 정사각형의 크기를 구하는 문제 한 변의 최대길이에서 점점 내려가며 조건을 만족하면 최대값을 비교하는 식으로 구현 근데 풀기전에 다른사람 코드를 봐버림... 정답 코드 import java.util.* import kotlin.math.max import kotlin.math.min //꼭짓점의 값이 모두 같은 가장 큰 크기의 정사각형 찾기 f.. 백준 2628 - 종이 자르기(Kotlin) https://www.acmicpc.net/problem/2628 2628번: 종이자르기 아래 과 같이 직사각형 모양의 종이가 있다. 이 종이는 가로방향과 세로 방향으로 1㎝마다 점선이 그어져 있다. 가로 점선은 위에서 아래로 1번부터 차례로 번호가 붙어 있고, 세로 점선 www.acmicpc.net 문제 접근 종이를 배열로 표현해서 자른 부분을 1로 처리한 다음 연속되는 0의 최대값을 곱해주면 됨 -> 어차피 한줄 끝까지 자르니깐 이차원 배열이 아닌 가로세로 각각 일차원 배열로 선언해서 연속되는 0의 개수의 최대값을 구하면 될듯? 정답 코드 import java.util.* fun main(args: Array): Unit = with(Scanner(System.`in`)) { val n = nextI.. 백준 2563 - 색종이(Kotlin) https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 문제 접근 좌표를 이차원 배열로 만들어 검은색 종이가 가리는 범위를 구하는 문제 검은색 범위가 가리는 부분을 1씩 증가시켜 전체 이차원배열중 0이 아닌부분의 개수를 구하는 식으로 해결함 정답 코드 import java.util.* fun main(args: Array): Unit = with(Scanner(System.`in`)) { var n = nextInt() val arr = Array(101.. 이전 1 ··· 4 5 6 7 8 다음