[백준] 1913번: 달팽이 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 풀이 좌표 (1, 1)부터 시작하여 순서대로 표를 채워가도록 코드를 구성하였다. while문을 사용하여 표를 역순으로 채워준다. 다음 좌표에 숫자가 이미 채워져 있거나 탐색 범위를 벗어나는 경우 달팽이 모양으로 숫자를 채울수 있도록 방향을 바꿔준다. 코드 fun main() { val br = System.`in`.bufferedReader() val bw = System.out.bufferedWriter() val size = br.readLine().to..
[백준] 14719번: 빗물 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 풀이 입력받은 블록 나타내는 2차원 배열을 생성하여 해결하였다. 배열에서 1은 블록을 나타내고 0은 빈 공간을 나타내도록 구성했다. 2중 for문을 사용하여 1층부터 확인한다. 처음 블록을 만나면 해당 블록 다음부터 빈 공간의 개수를 세고, 다시 블록을 만나면 빈 공간에 빗물이 고일수 있는 것으로 처리하여 전체 결과값에 더해준다. 모든 층을 확인하고 결과값을 출력해주면 된다. 코드 fun main() { val br = System.`in`..
[백준] 2503번: 숫자 야구 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 풀이 숫자야구는 일반적으로 세 자리나 네 자리의 숫자를 임의로 설정하여 상대방의 숫자를 맞추는 게임이다. 숫자를 맞추기 위해서는 서로에게 상대방의 숫자를 불러 결과를 확인한다. 결과는 숫자와 위치가 일치하면 스트라이크, 숫자는 맞지만 위치가 다르다면 볼로 판정하고 상대방에게 알려준다. 예를 들어 임의의 수가 456 이고 확인하는 수가 469 인 경우 1스트라이크 1볼이라고 상대방에게 알려준다. 만약 숫자가 하나도 맞지않는다면 아웃으로 처리하고, 3아웃이면 ..
[백준] 1652번: 누울 자리를 찾아라 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 1652번: 누울 자리를 찾아라 첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다. www.acmicpc.net 풀이 문제에서 '누울 수 있는 자리에 몸을 쭉 뻗는다'는 조건이 있어서 헷갈릴 수 있다. 이 조건은 두 칸 이상의 빈 칸을 영식이가 누울 수 있는 하나의 공간이라는 의미이다. 예를 들어, 방의 상태가 "...X.." 인 경우 'X' 앞의 공간과 'X' 뒤의 공간으로 총 2개의 공간이 영식이가 누울 수 있는 공간이다. 이를 해결하기 위해 반복문을 통해 빈 칸을 확인하고 2칸이 될 때마다 갯수를 세어 준다. 'X'를 만날 때부터 빈칸을 다시 세어주는 ..
[백준] 1138번: 한 줄로 서기 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 풀이 for문과 배열을 활용해 풀이하였다. 먼저 사람을 자리에 배치하기위한 빈 배열을 선언한다. 배열에는 1번부터 순서대로 배치하는데 0의 개수를 세어 위치를 정해주면 된다. 순서대로 배치하기 때문에 0의 개수는 자신보다 큰 사람이 위치할 수 있는 자리의 숫자이다. 이 숫자가 입력 받은 숫자와 같다면 현재 번호를 배치할 수 있는 것이다. 만약 자리에 이미 누군가 있다면 그 뒤에 배치해준다. 코드 fun main() { val br = System.`..