Uknow's Lab.
article thumbnail
[백준 5988번] [Kotlin] 홀수일까 짝수일까
카테고리 없음 2023. 6. 29. 22:06

https://www.acmicpc.net/problem/5988 5988번: 홀수일까 짝수일까 짝이 없는 경재는 매일 홀로 있다보니 홀수를 판별할 수 있는 능력이 생겼다. 창식이는 경재의 말이 사실인지 그 능력을 시험해보려 한다. 창식이의 의심이 끝이 없을 것 같아 N개만 확인하기 www.acmicpc.net 난이도 : 브론즈 3 태그 : 수학, 문자열, 사칙연산, 임의 정밀도 / 큰 수 연산 설명 수를 입력받고 이 수가 짝수라면 even을, 홀수라면 odd를 출력하는 문제입니다. 단순히 수를 입력받고 이를 2로 나눴을 때 나머지를 구할 경우, K (1

article thumbnail
[백준 7562번] [Kotlin] 나이트의 이동
코딩테스트/Kotlin 2023. 6. 29. 21:54

https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 난이도 : 실버 1 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 설명 특정 위치로 이동할 수 있는 가장 적은 횟수를 찾는 문제입니다. bfs를 활용할 수 있겠는데요. 단순히 4방향 bfs가 아닌 나이트의 이동에 맞춘 8방향 bfs를 사용하면 될 것 같습니다. 나이트의 이동은 상,하,좌,우 중 2칸 이동하고, 수직방향으로 1칸 혹은 상하좌우 1칸 이동 후 이동방향의 대각선 방향 1칸 이동으로..

article thumbnail
[백준 27331번] [Kotlin] 2 桁の整数 (Two-digit Integer)
코딩테스트/Kotlin 2023. 6. 27. 01:06

https://www.acmicpc.net/problem/27331 27331번: 2 桁の整数 (Two-digit Integer) 2 つの数字 A, B が与えられる. 十の位が A であり,一の位が B である 2 桁の正の整数を出力せよ. www.acmicpc.net 난이도 : 브론즈 5 태그 : 수학, 구현, 사칙연산 설명 일본 여행을 왔습니다. 그동안 열심히 달려온 만큼 잠시 재충전 시간을 가지고 있으나, 그렇다고 해서 1일 1코테를 쉴 수는 없으므로 좀 쉬운 문제 중에서도 일본어 문제 하나를 선택했습니다. 해당 문제는 숫자 두 개가 주어졌을 때, 첫 번째는 십의 자리, 두 번째는 일의 자리 숫자이며, 이 두 숫자를 합한 숫자를 출력하는 것이 목표입니다. 첫 번째 숫자에 10을 곱하고 두 번째 숫자를 더하여..

article thumbnail
[백준 5214번] [Kotlin] 환승
코딩테스트/Kotlin 2023. 6. 24. 01:03

https://www.acmicpc.net/problem/5214 5214번: 환승 첫째 줄에 역의 수 N과 한 하이퍼튜브가 서로 연결하는 역의 개수 K, 하이퍼튜브의 개수 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000) 다음 M개 줄에는 하이퍼튜브의 정보가 한 줄에 하나씩 주어 www.acmicpc.net 난이도 : 골드 2 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색 설명 몇 개의 역이 튜브로 연결되어 있고, 1번에서 N번까지 가는데 거쳐야 하는 최소 역 개수를 찾는 문제입니다. 시도 1 음... 각 튜브들끼리 연결되있다고 하니까, 단순히 각 튜브들끼리 모든 순서쌍을 그래프를 만들면 풀리지 않을까요? (1 ≤ N ≤ 100,000, 1 ≤ K, M ≤ 1000)..

article thumbnail
[백준 1240번] [Kotlin] 노드사이의 거리
코딩테스트/Kotlin 2023. 6. 22. 13:50

https://www.acmicpc.net/problem/1240 1240번: 노드사이의 거리 첫째 줄에 노드의 개수 $N$과 거리를 알고 싶은 노드 쌍의 개수 $M$이 입력되고 다음 $N-1$개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 $M$개의 노드 쌍 www.acmicpc.net 난이도 : 골드 5 태그 : 그래프 이론, 그래프 탐색, 트리, 너비 우선 탐색, 깊이 우선 탐색 설명 가중치가 있는 그래프(트리)에서, 두 노드간 거리를 구하는 문제입니다. DFS/BFS를 사용해 그래프(트리)를 탐색하여 풀 수 있을 것 같은데요. 저는 BFS를 사용해 풀이하였습니다. 소스코드 데이터용 클래스 Node Node는 to (목표 노드), cost(목표 노드로 가는..

article thumbnail
[백준 4344번] [Kotlin] 평균은 넘겠지
코딩테스트/Kotlin 2023. 6. 22. 01:33

https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 난이도 : 브론즈 1 태그 : 수학, 사칙연산 설명 예전에 푼 문제였던 것 같은데, 오늘 확인해보니 갑자기 틀렸습니다로 뜨길래 뭔가 했더니, 테스트 케이스가 추가되어 재채점 되었더군요. 코틀린 혹은 파이썬으로 해당 문제를 풀 경우 애로사항 중 하나가 바로 반올림하는 부분일 것 같습니다. 이전에 포스팅했던 내용인 오사오입 방식 때문인데요. https://uknowblog.tistory.com/338 코틀린의 반올림 방식 : 오사오입 kotlin.math.round()... 뭔..

article thumbnail
[백준 2573번] [Kotlin] 빙산
코딩테스트/Kotlin 2023. 6. 21. 16:31

https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 난이도 : 골드 4 태그 : 구현, 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 설명 얼음을 녹이면서 덩어리가 두개가 되는 시점을 찾는 문제입니다. 얼음을 녹이는 구현 부분에 약간의 시뮬레이션 요소가 들어갔다고 볼 수 있을 것 같네요. 얼음이 몇 덩어리인지 확인하는 부분은 DFS / BFS 를 사용할 수 있을 것 같은데, 저는 DFS를 사용해 풀이하였습니다. 접근 방법 1...

article thumbnail
[디자인 패턴] Strategy(전략) 패턴 + Template Callback Pattern
CS 지식/디자인 패턴 2023. 6. 20. 23:47

Strategy Pattern 스트레티지, 혹은 전략 패턴은 코드가 실행되는 중인 런타임 환경 중, 객체를 바꾸는 패턴입니다. 일반적으로 상속을 사용할 경우, 코드 작성 단계에서 이미 부모 클래스를 상속받았으므로, 코드 실행 중 부모 클래스를 변경하는 것은 불가능하기에, 주로 동적으로 알고리즘(전략, 동작, 수행)을 바꾸기 위해 쓰입니다. 출저 - https://ko.wikipedia.org/wiki/%EC%A0%84%EB%9E%B5_%ED%8C%A8%ED%84%B4 전략 패턴 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 전략 패턴(strategy pattern) 또는 정책 패턴(policy pattern)은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴..

article thumbnail
상속과 자바 Stack 클래스의 문제점
언어/Java 2023. 6. 20. 17:34

Stack 스택이란 LIFO(Last In Fist Out)를 지원하는 자료구조로써, 가장 나중에 들어간 것이 가장 빨리 나오는 형태입니다. 후입 선출이라고도 하죠. 이는 접시처럼, 가장 위에 있는 접시(가장 나중에 쌓은 접시) 부터 꺼내야 하는 것과 비슷합니다. Ctrl + Z나 브라우저 뒤로가기 버튼 등도 대표적인 예시입니다. 자바의 Stack 클래스 실행결과 : 3, 2, 1 (개행문자 생략) 꽤 많이 사용되는 자료구조인 만큼, 자바의 표준 라이브러리에서도 Stack을 이미 지원하고 있습니다. push로 stack에 데이터를 넣고, pop을 사용해 가장 최근의 데이터부터 꺼낼 수 있습니다. Stack은 push를 통해 데이터를 집어넣는구나! 근데 add는 뭐지? 스택에 데이터를 넣는 메소드는 pus..

article thumbnail
[백준 2309번] [Kotlin] 일곱 난쟁이
코딩테스트/Kotlin 2023. 6. 18. 02:59

https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 난이도 : 브론즈 1 태그 : 정렬, 브루트포스 설명 9명의 난쟁이가 주어졌을 때, 합이 100이 되는 7명의 난쟁이를 찾는 문제입니다. 9명의 난쟁이 키의 합을 구한 뒤, 9명 중 2명을 선택해 난쟁이 키 합에서 뺀 뒤, 100이 되는 케이스를 찾으면 될 것 같습니다. 소스코드 fun main() { val height = Array(9) { 0 } repeat(9) { height[it] = readL..