28445번: 알록달록 앵무새
백준/문제2024. 7. 19. 16:3628445번: 알록달록 앵무새

문제 출처 : https://www.acmicpc.net/problem/28445 언어 : Kotlin 문제 설명 :재현이가 키우는 앵무새 포포와 레몬이는 그동안 새끼들을 참 많이도 낳았다. 그렇게 태어난 앵무새들을 관찰하며 재현이는 앵무새들의 색에 간단한 규칙이 있다는 것을 발견했다. 그것은 바로 자식 앵무새의 몸통 색은 아빠 새의 몸통 색과 꼬리 색, 엄마 새의 몸통 색과 꼬리 색 중 하나이며 꼬리 색도 마찬가지로 이 넷 중 하나의 색으로 정해진다는 것이다. 아빠 새의 몸통 색과 꼬리 색, 엄마 새의 몸통 색과 꼬리 색이 주어질 때 가능한 자식 앵무새의 몸통 색과 꼬리색의 모든 쌍을 사전 순으로 출력하라. (단, 중복되는 몸통 색, 꼬리 색의 쌍은 출력하지 않는다.) 입력 :첫 번째 줄에 아빠 새의 ..

10453번: 문자열 변환
백준/문제2024. 7. 18. 16:3710453번: 문자열 변환

문제 출처 : https://www.acmicpc.net/problem/10453 언어 : Kotlin 문제 설명 :좋은 문자열은 다음과 같이 정의된다. ab 는 좋은 문자열이다. 만약 문자열 [S]가 좋은 문자열이라면, 오른쪽과 왼쪽 끝에 각각 a와 b를 추가한 문자열 a[S]b 또한 좋은 문자열이다. 만약 문자열 [S]와 [T]가 좋은 문자열이라면 이들을 붙여 쓴 [S][T] 또한 좋은 문자열이다. 어떤 두 좋은 문자열 A와 B가 주어진다. 문자열 A를 '인접한 두 문자를 서로 바꾸는' 연산을 통해 문자열 B로 바꾸려고 한다. 이때 필요한 연산의 수를 구하는 프로그램을 작성하시오. A를 B로 바꾸는 중에 나타나는 문자열도 모두 좋은 문자열이어야 한다. 예를 들어, A = aabbabab 이고 B = ..

5534번: 간판
백준/문제2024. 7. 18. 15:535534번: 간판

문제 출처 : https://www.acmicpc.net/problem/5534 언어 : Kotlin 문제 설명 :상근이는 학교 근처에 새로운 편의점을 열었다. 편의점의 얼굴은 간판이라고 할 수 있다. 상근이가 새로 연 편의점은 프랜차이즈 편의점이 아니기 때문에, 간판도 자신이 직접 돈을 들여서 만들어야 한다. 근처 편의점은 이미 할인 카드, 적립 카드와 같은 정책으로 손님을 끌어 모으고 있다. 상근이는 전 품목을 5%해서 손님을 모으려고 한다. 이렇게 물건의 가격을 할인해서 팔려면, 다른 곳에 들어가는 비용을 줄어야 한다. 따라서, 상근이는 간판을 재활용해서 만들기로 했다. 편의점이 있기 전에 원래 이 곳은 간판 가게였다. 따라서, 편의점에는 이전 주인이 버리고 간 오래된 간판이 N개 있다. 상근이는 ..

14561번: 회문
백준/문제2024. 7. 17. 17:1514561번: 회문

문제 출처 : https://www.acmicpc.net/problem/14561 언어 : Kotlin 문제 설명 :n진수는 base가 n인 수를 말한다. 예를 들어 십진수는 base가 10인 수이다. n진수의 수 AmAm-1Am-2…A1A0를 n진수로 표현해보면 AmAm-1Am-2…A1A0 = Am × nm + Am-1 × nm–1 + Am-2 × nm–2 + … + A1 × n1 + A0 × n0이다. 예를 들면, 12468은 12468 = 1 × 104 + 2 × 103 + 4 × 102 + 6 × 101 + 8 × 100로 표현할 수 있다. 회문(Palindrome)이란 앞으로 읽으나 뒤로 읽으나 같은 글을 말한다. 예를 들면, madam, level, 12321은 회문이다. 반면에, Chung-..

7569번: 토마토
백준/문제2024. 7. 17. 16:157569번: 토마토

문제 출처 : https://www.acmicpc.net/problem/7569 언어 : Kotlin 문제 설명 :철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없..

9249번: 최장 공통 부분 문자열
백준/문제2024. 7. 16. 16:359249번: 최장 공통 부분 문자열

문제 출처 : https://www.acmicpc.net/problem/9249 언어 : Kotlin 문제 설명 :문자열 (T=t1t2 ... tm)가 문자열 (S=s1s2 ... sn)의 부분 문자열이 되려면, (s{i+1}s{i+2} ... s{i+m} = T)를 만족하는 (0 ≤ i ≤ n-m)가 있어야 한다. 두 문자열 (A)와 (B)가 주어졌을 때, 두 문자열의 공통 부분 문자열의 최대 길이와 그 부분 문자열을 구하는 프로그램을 작성하시오. 입력 :두 문자열 (A)와 (B)가 한 줄에 하나씩 주어진다. 두 문자열 길이의 합은 20만을 넘지 않는다. 주어지는 문자열은 알파벳 소문자로만 이루어져 있다. 출력 :첫째 줄에 두 문자열의 최장 공통 부분 문자열의 길이를 출력한다.둘째 줄에 해당 부분 문자..

7662번: 이중 우선순위 큐
백준/문제2024. 7. 16. 14:597662번: 이중 우선순위 큐

문제 출처 : https://www.acmicpc.net/problem/7662 언어 : Kotlin 문제 설명 :이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위한 것이고 다른 하나는 우선순위가 가장 낮은 것을 삭제하기 위한 것이다. 정수만..

23738번: Ресторан
백준/문제2024. 7. 15. 13:3823738번: Ресторан

문제 출처 : https://www.acmicpc.net/problem/23738 언어 : Kotlin 문제 설명 :팀 레드시프트를 따라 모스크바 여행에 간 한별이는 거리에 늘어선 ‘Ресторан’가 적힌 간판들을 보고 어떤 가게일까 고민하기 시작했다. 러시아어 알파벳에는 영어 알파벳과 비슷하게 생긴 글자들이 있는데, А, В, Е, К, М, Н, О, Р, С, Т, У, Х의 12가지가 있다. А, К, М, О, Т의 다섯 글자는 보이는 대로 읽으면 되지만, 나머지 7가지 글자는 영어 알파벳의 발음과 다르게 읽어야 한다! ‘В’는 ‘B’처럼 보이지만 ‘v’로 읽는다. ‘Е’는 ‘E’처럼 보이지만 ‘ye’로 읽는다. ‘Н’은 ‘H’처럼 보이지만 ‘n’으로 읽는다. ‘Р’은 ‘P’처럼 보이지만 ‘r..

29614번: 학점계산프로그램
백준/문제2024. 7. 15. 13:2929614번: 학점계산프로그램

문제 출처 : https://www.acmicpc.net/problem/29614 언어 : Kotlin 문제 설명 :종현은 영도와 함께 학교 포털 사이트에서 데이터를 가져와 본인의 학점을 계산하는 프로그램을 만들고 있다. 종현은 영도가 사이트에서 추출한 등급 데이터를 사용해서 평균 학점을 출력하고자 한다. 등급별 학점은 다음의 표를 따른다.등급학점A+4.5A4.0B+3.5B3.0C+2.5C2.0D+1.5D1.0F0.0 입력 :첫째 줄에 과목별 등급이 나열된 문자열 S가 주어진다. 등급 사이에는 별도의 구분자가 없다. 문자열은 표에 있는 문자들로만 이루어져 있으며, 최대 1,000 글자로 이루어져 있다. 출력 :문자열 S에 나열된 등급으로 구한 학점의 산술평균을 첫째 줄에 출력한다. 정답과 출력값의 절대/..

31867번: 홀짝홀짝
백준/문제2024. 7. 15. 13:0131867번: 홀짝홀짝

문제 출처 : https://www.acmicpc.net/problem/31867 언어 : Kotlin 문제 설명 :민구는 자릿수가 N인 양의 정수 K로 홀짝 놀이를 하려고 한다.홀짝 놀이의 과정은 다음과 같다.각 자릿수에 대해서 해당 숫자가 짝수인지 홀수인지를 확인한다. 숫자 0은 짝수이다.모든 자릿수에 대해서 홀짝 판별이 완료되면 전체 짝수의 개수와 홀수의 개수를 비교한다.짝수의 개수가 홀수의 개수보다 더 많으면 주어진 수는 짝짝수이다. 홀수의 개수가 짝수의 개수보다 더 많으면 홀홀수이다.숫자가 너무 길어서 개수를 세는 것에 어려움을 겪는 민구를 위해 홀짝 놀이를 도와주는 프로그램을 작성하자! 입력 :첫 번째 줄에 자릿수 N이 주어진다. (1 ≤ N ≤ 10^6)두 번째 줄에 자연수 K가 주어진다. ..

image