성장, 그 아름다운 향연
백준 20920) 영단어 암기는 괴로워 (hashmap, sortWith)
algorithm/구현 2021. 5. 26. 18:05

https://www.acmicpc.net/problem/20920 20920번: 영단어 암기는 괴로워 첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단 www.acmicpc.net 문제 화은이는 이번 영어 시험에서 틀린 문제를 바탕으로 영어 단어 암기를 하려고 한다. 그 과정에서 효율적으로 영어 단어를 외우기 위해 영어 단어장을 만들려 하고 있다. 화은이가 만들고자 하는 단어장의 단어 순서는 다음과 같은 우선순위를 차례로 적용하여 만들어진다. 자주 나오는 단어일수록 앞에 배치한다. 해당 단어의 길이가 길수록..

백준 17127) 벚꽃이 정보섬에 피어난 이유
algorithm/구현 2021. 5. 17. 01:51

https://www.acmicpc.net/problem/17127 17127번: 벚꽃이 정보섬에 피어난 이유 다음과 같이 나누는 것이 P의 합을 최대화 한다: [2] [5 3 1 4] [2] [3] www.acmicpc.net 문제 정보섬에 벚꽃이 피어났다! 정보섬에 만발한 꽃송이들을 본 욱제는 한 가지 좋은 생각을 떠올렸다. 아래와 같은 네 개의 푯말을 준비해서 정보섬의 꽃밭에 세우는 것이다. 정보섬의 1층 꽃밭에는 총 N개의 벚나무가 일렬로 늘어서 있다. 각 벚나무에는 늘어선 순서대로 A1, A2, ..., AN개의 벚꽃이 피어나 있다. 욱제는 이 벚나무를 총 네 개의 그룹으로 나누어 각 그룹을 대표하도록 푯말을 세웠다. 이 그룹을 나눈 데에는 특별한 기준이 있다. 그룹 [i, j]의 벚꽃 개수들의..

백준 1316) 그룹 단어 체커
algorithm/구현 2021. 5. 17. 01:17

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출..

백준 10825) 국영수 (정렬)
algorithm/문자열 2021. 5. 12. 14:53

www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 문제 도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오. 국어 점수가 감소하는 순서로 국어 점수가 같으면 영어 점수가 증가하는 순서로 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므..

백준 9251) LCS

www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어..

article thumbnail
[Kotlin] for문을 사용할 때 느낀 고찰
algorithm/문자열 2021. 4. 13. 18:48

www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 문자열을 공부하면서 부정확한 for문의 이해로 몇 번의 실패를 경험하게 됐다. 필자가 문제를 풀면서 헷갈렸던 점은 1.for문의 'in' 다음으로 배열 혹은 collection을 선언하는 것 배열 혹은 collection의 크기를 범위로 두는 것 처음에 문제를 풀 때는 첫 번째 방법으로 접근하려 했다. import java.io.* fun main() { val br = BufferedReader(InputStream..

article thumbnail
[Kotlin] 그리디 알고리즘(탐욕 알고리즘)

[fastcampus 알고리즘 강의 내용 참고] 탐욕 알고리즘이란 최적의 해에 가까운 값을 구하기 위해 사용됩니다. 즉, 여러 가지 경우 중에서 하나를 결정할 때, 매 순간마다 최적의 경우만 선택하는 방식을 채택해서 최종적인 값을 구합니다. 예를 들어보겠습니다. 문제1) 동전 문제 1원, 50원, 100원, 500원 동전이 주어질 때, 가장 적게 지불하는 동전의 수를 구하기 //val coinList = listOf(1,100,50,500) private fun Int.coinProblem(list: List) : Int { //외부로부터 숫자를 전달받을 때 항상 고정값이므로 Int.함수명을 이용 //항상 최적을 따라야 하기 때문에 가장 큰 숫자부터 내림차순으로 정렬 val coinList = list...

article thumbnail
[Kotlin] LinkedList 직접 구현해보기
computer-science/자료구조 2021. 3. 25. 15:46

코딩테스트를 공부하기 위해 코틀린을 이용한 자료구조, 알고리즘 강의나 서적을 찾아봤지만, 이제 막 떠오르는 언어라 그런지 아직까지는 없는 듯 했습니다. 그래서 기존에 알고 있던 파이썬과 "자료구조와 함께 배우는 알고리즘 입문 - 자바편" 이라는 책을 기반으로 해서 코틀린을 기반한 모든 자료구조와 알고리즘을 다뤄볼 것입니다. 두 언어 모두 객체 지향이고 JVM에서 실행되는 코틀린이기 때문에 자바를 기준으로 하되, 파이썬의 간결함을 결합시켜 최대한 이해하기 쉽게 작성해봤습니다. 그럼 전체 코드를 먼저 살펴보겠습니다. class LinkedList { private var head: Node? = null private inner class Node( var data: E, var next: Node? = n..

profile on loading

Loading...