목록Algorithm (45)
in.add()
문제 링크 : https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 문제 해결 방법 BFS로 구현했다. package com.BOJ; import java.util.HashMap; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class boj16928 { static HashMap map; pub..
문제 링크 : https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 문제 해결 방법 BFS로 구현했다. import java.util.*; public class Main { static int N, aptCnt; static int[][] map; static int[] dx = {1, 0, -1, 0}; static int[] dy = {0, 1, 0, -1}; static PriorityQueue answerList; public static v..
문제 링크 : https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 문제 해결 방법 섬에 번호를 매기기 위해 BFS. 섬마다 최소 길이로 놓을 수 있는 다리를 찾기 위해 DFS. 마지막으로 크루스칼로 MST를 구해줬다. import java.util.*; public class Main { static int N, M, islandCnt, answer, answerCnt; static int[][] map, dist; stati..
문제 링크 : https://www.acmicpc.net/problem/14003 14003번: 가장 긴 증가하는 부분 수열 5 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net 문제 해결 방법 14002번과 같은 문제이지만 입력 크기가 훨씬 커서 이진 탐색을 이용한 LIS를 구현했다. import java.util.ArrayList; import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; public class Main { public sta..
문제 링크 : https://www.acmicpc.net/problem/14002 14002번: 가장 긴 증가하는 부분 수열 4 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 문제 해결 방법 DP를 이용한 LIS알고리즘으로 구현했다. import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; public class Main { public static void main(String[] args..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 문제 해결 방법 규칙을 찾아 구현했다. A - AA - AAA - AAAA - AAAAA - AAAAE - AAAAI - AAAAO - AAAAU 다섯 번째 자리의 모음은 "AEIOU" 순서대로 바뀌는데 한 번이면 된다. AAAE - AAAEA - AAAEE - AAAEI - AAAEO - AA..
문제 링크 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV_mSnmKUckDFAWb&categoryId=AV_mSnmKUckDFAWb&categoryType=CODE&problemTitle=3124&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해결 방법 크루스칼 알고리즘을 사용했다. import java.io.BufferedReader; import java.io...
문제 링크 : https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 해결 방법 1행부터 내려가면서 위의 행의 같은 열이 아닌 최솟값을 더해줬다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[][] hou..