Uknow's Lab.
article thumbnail
[백준 1525번] [Kotlin] 퍼즐
코딩테스트/Kotlin 2023. 5. 6. 19:03

https://www.acmicpc.net/problem/1525 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net 난이도 : 골드 2 태그 : 자료 구조, 그래프 이론, 그래프 탐색, 너비 우선 탐색, 해시를 사용한 집합과 맵 설명 BFS + Map을 사용한 문제입니다. 처음에는 9개 좌표의 방문체크를 어떻게 해야하나... 9차원 visited 배열...?을 생각했으나, 그냥 Map을 사용해 방문체크를 할 수 있습니다. 103 425 786 위의 3x3 퍼즐이 주어졌다면, 이를 103425786와 같이 문자열 혹은 CharArray 형태로 바꿔 생각할 수 있습니다. 즉, map["103..

article thumbnail
[백준 1302번] [Kotlin] 베스트셀러
코딩테스트/Kotlin 2023. 2. 9. 21:52

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 난이도 : 실버 3 태그 : 자료 구조, 문자열, 정렬, 해시를 사용한 집합과 맵 설명 이 문제 같은 경우, 문자열 별로 카운트를 해야 하므로, 해시맵을 유용하게 쓸 수 있겠습니다. 소스코드 fun main(): Unit = with(System.`in`.bufferedReader()) { val hashMap = HashMap() repeat(readLine().toInt()) { val..

article thumbnail
[백준 14425번] [Kotlin] 문자열 집합
코딩테스트/Kotlin 2022. 12. 1. 15:01

https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 난이도 : 실버 3 태그 : 자료구조, 문자열, 해시를 사용한 집합과 맵, 트리를 사용한 집합과 맵 설명 집합을 하나 만들고, 이 안에 집합 S에 있는 문자열들을 있습니다. 이후, 검사해야 할 문자열들이 집합에 포함되어 있는지 하나씩 검사합니다. 소스코드 fun main(): Unit = with(System.`in`.bufferedReader()) { val (n..

article thumbnail
[백준 1269번] [Kotlin] 대칭 차집합
코딩테스트/Kotlin 2022. 12. 1. 14:57

https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 난이도 : 실버 4 태그 : 자료구조, 해시를 사용한 집합과 맵, 트리를 사용한 집합과 맵 설명 자바/코틀린의 자료 구조중 하나인 집합(set)을 사용하맨 꽤 쉽게 풀 수 있습니다. 소스코드 fun main():Unit = with(System.`in`.bufferedReader()) { readLine() val a = readLine().split(" ").map { it.toInt() ..

article thumbnail
[백준 9733번] [Kotlin] 꿀벌
코딩테스트/Kotlin 2022. 12. 1. 14:52

https://www.acmicpc.net/problem/9733 9733번: 꿀벌 각각의 일을 한 횟수와 비율을 공백으로 구분하여 출력한다. 출력은 {Re,Pt,Cc,Ea,Tb,Cm,Ex} 순서대로 하며, 비율은 소수점 둘째 자리까지 출력한다. 주어진 목록에 없는 일은 출력하지 않는다. 입력의 www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 자료 구조, 문자열, 해쉬를 사용한 집합과 맵 설명 해쉬맵을 사용하여 각 일을 몇 번 했는지 카운트하여 풀 수 있습니다. 소스코드 import java.util.* import kotlin.collections.HashMap fun main() = with(System.`in`.bufferedReader()) { val target = arrayOf..

article thumbnail
[백준 4158번] [C언어] CD
코딩테스트/C | C++ 2022. 11. 28. 23:10

https://www.acmicpc.net/problem/4158 4158번: CD 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 상근이가 가지고 있는 CD의 수 N, 선영이가 가지고 있는 CD의 수 M이 주어진다. N과 M은 최대 백만이다. 다음 줄 www.acmicpc.net 난이도 : 실버 5 태그 : 자료 구조, 이분 탐색, 해시를 사용한 집합과 맵, 두 포인터 설명 두 사람이 공통으로 갖고 있는 CD의 개수를 출력하는 문제입니다. 이중 for문을 사용하여 같은 CD를 체크할 경우 시간초과에 걸릴게 뻔하므로, 다른 풀이를 생각해보아야 합니다. 1 3 6 7 9와 1 2 3 5 9, 두 개의 배열이 있습니다. 양쪽의 배열 index를 가르킬 ptr1, ptr2가 ..