분류 전체보기

Algorithm/Baekjoon

백준 9081 단어 맞추기(Java)

문제 출처 : https://www.acmicpc.net/problem/9081 9081번: 단어 맞추기 입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 하나의 단어가 한 줄로 주어진다. 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이 없는 연속된 알 www.acmicpc.net 문제 설명 BEER라는 단어를 이루는 알파벳들로 만들 수 있는 단어들을 사전 순으로 정렬하게 되면 BEER BERE BREE EBER EBRE EEBR EERB ERBE EREB RBEE REBE REEB 와 같이 된다. 이러한 순서에서 BEER 다음에 오는 단어는 BERE가 된다. 이와 같이 단어를 주면 그 단어를 이루는 알파벳들로 만들 수 있는 단어들을 사전 순으로 정..

Algorithm/Baekjoon

백준 2138 전구와 스위치(Java)

문제 출처 : https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 문제 설명 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 있는 전구는 켜지고, 켜져 있는 전구는 꺼지게 된다. 1번 스위치를 눌렀을 경우에는 1, 2번 전구의 상태가 바뀌고, N번 스..

Algorithm/Baekjoon

백준 17142 연구소 3(Java)

문제 출처 : https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 문제 설명 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, 활성 상태인 바이러스는 상하좌우로 인접한 모든 빈 칸으로 동시에 복제되며, 1초가 걸린다. 승원이는 연구소의 바이러스 M개를 활성 상태로 변경하려고 한다. 연구소는 크기가 N×N인 정사각형으로 나타낼..

Algorithm/Baekjoon

백준 7682 틱택토(Java)

문제 출처 : https://www.acmicpc.net/problem/7682 7682번: 틱택토 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 줄은 9개의 문자를 포함하며, 'X', 'O', '.' 중 하나이다. '.'은 빈칸을 의미하며, 9개의 문자는 게임판에서 제일 윗 줄 왼쪽부터의 순서이다. 입 www.acmicpc.net 문제 설명 틱택토 게임은 두 명의 사람이 번갈아가며 말을 놓는 게임이다. 게임판은 3×3 격자판이며, 처음에는 비어 있다. 두 사람은 각각 X 또는 O 말을 번갈아가며 놓는데, 반드시 첫 번째 사람이 X를 놓고 두 번째 사람이 O를 놓는다. 어느 때든지 한 사람의 말이 가로, 세로, 대각선 방향으로 3칸을 잇는 데 성공하면 게임은 즉시 끝난다. 게임판이 가득 차도 게임..

Algorithm/Baekjoon

백준 20006 랭킹전 대기열(Java)

문제 출처 : https://www.acmicpc.net/problem/20006 20006번: 랭킹전 대기열 모든 생성된 방에 대해서 게임의 시작 유무와 방에 들어있는 플레이어들의 레벨과 아이디를 출력한다. 시작 유무와 플레이어의 정보들은 줄 바꿈으로 구분되며 레벨과 아이디는 한 줄에서 공백 www.acmicpc.net 문제 설명 종운이는 운영하던 게임에 랭킹전 기능을 추가하려고 한다. 플레이어 간의 실력차이가 있을 수 있기 때문에 입장을 신청하면 자신과 비슷한 레벨의 플레이어들을 매칭하여 게임을 시작하게 하려고 한다. 플레이어 간 매칭을 해주는 시스템은 다음과 같다. 플레이어가 입장을 신청하였을 때 매칭이 가능한 방이 없다면 새로운 방을 생성하고 입장시킨다. 이떄 해당 방에는 처음 입장한 플레이어의 ..

Algorithm/Baekjoon

백준 2607 비슷한 단어(Java)

문제 출처 : https://www.acmicpc.net/problem/2607 2607번: 비슷한 단어 첫째 줄에는 단어의 개수가 주어지고 둘째 줄부터는 한 줄에 하나씩 단어가 주어진다. 모든 단어는 영문 알파벳 대문자로 이루어져 있다. 단어의 개수는 100개 이하이며, 각 단어의 길이는 10 이 www.acmicpc.net 문제 설명 영문 알파벳 대문자로 이루어진 두 단어가 다음의 두 가지 조건을 만족하면 같은 구성을 갖는다고 말한다. 두 개의 단어가 같은 종류의 문자로 이루어져 있다. 같은 문자는 같은 개수 만큼 있다. 예를 들어 "DOG"와 "GOD"은 둘 다 'D', 'G', 'O' 세 종류의 문자로 이루어져 있으며 양쪽 모두 'D', 'G', 'O' 가 하나씩 있으므로 이 둘은 같은 구성을 갖..

Kotlin

코틀린 정적 변수

companion object 자바에서의 static 같이 동적인 초기화 없이 정적으로 고정하는 방법. 코틀린은 static이 없이 때문에 companion object를 사용한다. 프로그램 실행 시 고정적으로 가지는 메모리. 객체 생성 없이 사용한다. 단 자주 사용되지 않는 변수나 객체를 만들면 메모리가 낭비된다. class Coffee { var name: String = "Americano" var price: Int = 4000 companion object { var language: String = "Korean" fun drink() { println("drink") } } } fun main() { println(Coffee.language) Coffee.language = "English..

CS/Database

프로그래밍 SQL 문법 정리 (MYSQL)

가독성을 높이기 위해 칼럼에 별명(Alias)을 부여할 수 있다. SELECT 데이터베이스에서 특정 데이터를 조회할 때 사용한다. SELECT column FROM table; 가독성을 높이기 위해 칼럼에 별명(Alias)을 부여할 수 있다. SELECT column AS alias_column FROM table; WHERE 조건문으로 특정 조건을 만족하는 값을 선택할 수 있다. null인 조건을 확인 경우 IS NULL 과 IS NOT NULL을 사용한다. SELECT column FROM table WHERE column = 1; ORDER BY 기본적으로 칼럼을 오름차순으로 정렬한다. 반대의 경우(내림차순) Order By column desc로 작성한다. SELECT column1, column..

Kotlin

코틀린 프로퍼티와 초기화

코틀린 프로퍼티 (Property) 변수 선언과 접근 메서드를 모두 가진다. 접근 메서드를 따로 만들지 않아도 내부적으로 생성한다. 게터(Getter)와 세터(Setter) 구성 코틀린은 자바와 다르게 모든 변수에 대한 접근 메서드(게터 + 세터)를 만들지 않아도 기본 생성해준다. val인 경우 불변형이기 때문에 게터(Getter)만 설정할 수 있다. fun main() { val coffee = Coffee("Americano", 4000) // Getter에 의한 값 얻기 val coffeeName = coffee.name // Setter에 의한 값 설정 coffee.price = 5000 } // 접근 메서드는 내부적으로 생성 class Coffee(name: String, price: Int) ..

Algorithm/Algorithm

그래프 탐색 (DFS & BFS)

그래프 탐색 그래프 탐색은 그래프의 시작 정점이 주어졌을 때, 시작점에서 간선을 타고 이동할 수 있는 모든 정점을 한 번씩 탐색하는 것을 의미합니다. 그래프 탐색 방법에는 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)이 있습니다. 시간 복잡도 : 인접 행렬(O(V^2)), 인접 리스트(O(V+E)) V : 접점, E : 간선 DFS DFS는 시작점에서 시작하여 해당 분기를 모두 탐색 후 다음 분기로 넘어가는 탐색 방법입니다. 모든 경로를 탐색할 때 DFS를 사용한다. 검색 속도는 BFS에 비해 느리다. 메모리 효율은 인접리스트가 인접 행렬에 비해 좋지만 속도는 인접 행렬이 빠르다. 스택 또는 재귀를 이용하여 구현한다. BFS BFS는 시작점에서 가까운 점들을 우선적으로 탐색하는 방법입니다. 두 노드..

Jyuni
'분류 전체보기' 카테고리의 글 목록 (6 Page)