본문 바로가기

Algorithm54

[백준 Gold 3] 1516 게임 개발 - Java 문제링크 : https://www.acmicpc.net/problem/status/1516 1516번 맞힌 사람 - 1 페이지 모든 언어C++JavaPythonCC++17Java 8Python 3C11PyPy3C99C++98C++11C++14Java 8 (OpenJDK)Java 11C++20Python 2PyPy2RubyKotlin (JVM)Kotlin (Native)CythonSwiftTextC#node.jsGoGo (gccgo)Java 15DD (LDC)F# (Mono)PHPRust 2015Rust 2018PascalScalaLuaPerlRakuRuby 1.8R www.acmicpc.net 접근 과정 : 어떤 건물을 짓기 전에, 지어야 하는 건물이 있다면 그 건물들을 모두 먼저 지어야 한다. 건물을 .. 2022. 1. 27.
[백준 Silver 2] 10451 순열 사이클 - Java 문제링크 : https://www.acmicpc.net/problem/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 접근 과정 : 분리 집합이 바로 떠올랐기 때문에, 분리집합으로 접근했다. 순열의 크기만큼 집합 배열을 선언한다. 순열의 인덱스가 해당 원소를 가리키기 때문에, 인덱스와 원소를 합친다(union). 모든 순열의 순회한 뒤에, 집합 배열의 값이 0인 원소를 카운트 한다. 소스 코드 및 결과 : package BOJ;.. 2022. 1. 14.
[백준 Silver 4] 11656 접미사 배열 - Java 문제링크 : https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 접근 과정 : 문자열 S를 어떻게 자를지 / 접미사들을 어떻게 정렬시켜서 출력할지 두 가지만 생각하면 된다. 문자열을 자르는 방식으로는 substring 메소드와 char를 하나씩 더해주는 방법이 있다. 접미사를 정렬하는 방식에는 우선순위 큐와 배열+Arrays.sort / List+Collections.sort 가 있다. 소스 코드 및 결과 : /* 접미사 배열 */ import java.io.*; import java.util.*; public class Ma.. 2022. 1. 13.
[백준 Gold 2] 1766 문제집 - Java 문제링크 : https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 접근 과정 : 결국 먼저 풀어야하는 문제가 없고, 문제 번호가 작은 것부터 출력하면 된다. 문제는 2가지 방법으로 접근했다. 1. 해당 문제를 기준으로, 먼저 풀어야 하는 문제와 나중에 풀어야 하는 문제를 저장하는 List 2개를 이용해서 접근 우선순위 큐에는 현재 풀 수 있는 문제를 집어넣어서, 문제 번호가 작은 것부터 풀었다. 문제를 풀 때, 해당 문.. 2022. 1. 13.