문제 출처 : https://www.acmicpc.net/problem/30403 언어 : Kotlin 문제 설명 :무지개 문자열은 R(빨간색), O(주황색), Y(노란색), G(초록색), B(파란색), I(남색), V(보라색) 순으로 이루어진 문자열이며, 대소문자를 구분하지 않는다. 임스는 춘배에게 영어 대소문자로 이루어진 문자열을 제공하고, 해당 문자열에 있는 문자들을 활용하여 무지개 문자열을 만들 수 있는지 물어봤다. 임스가 춘배에게 제공한 문자열의 길이 N과, 문자열이 주어질 때, 소문자로만 이루어진 무지개를 만들 수 있으면 yes, 대문자로만 이루어진 무지개를 만들 수 있으면 YES, 두 가지 모두 만들 수 있으면 YeS, 두 가지 모두 만들 수 없으면 NO!를 출력한다. 입력 :첫 번째 줄에는..
문제 출처 : https://www.acmicpc.net/problem/9584 언어 : Kotlin 문제 설명 :The number of cars in Default City that travel to the city center daily vastly exceeds the number of available parking spots. The City Council had decided to introduce parking fees to combat the problem of overspill parking on the city streets. Parking fees are enforced using an automated vehicle registration plate scanners that tak..
문제 출처 : https://www.acmicpc.net/problem/25183 언어 : Kotlin 문제 설명 :재형이는 인생 역전을 위해 오늘도 로또를 샀다. 로또를 구매하면 알파벳 대문자 N개가 일렬로 적힌 문자열이 주어진다. 로또에 당첨되기 위해선 인접한 문자가 모두 사전상에서 이웃한, 길이 5 이상의 부분 문자열이 로또 문자열에 존재해야 한다. 예를 들어 'C'와 사전상에서 이웃한 문자는 'B'와 'D'이고, 'Z'와 이웃한 문자는 'Y' 하나이며, 자기 자신과는 이웃하지 않는다. 따라서, 로또 문자열이 "ABCDE", "ASGXYZYXE", "WEFGHIJKA"인 경우는 당첨이고, "ABCDF", "CXYZAB", "AAAAA"는 당첨되지 않은 경우이다. 알파벳 대문자 N개로 이루어진..
문제 출처 : https://www.acmicpc.net/problem/20494 언어 : Kotlin 문제 설명 :천하제일코딩대회를 마치고 N명의 운영진은 회전 초밥집으로 회식을 가서 스시를 먹기로 했다. 이 식당에는 총 26가지의 스시가 있으며, 이는 문자 A부터 Z까지에 대응하여 생각할 수 있다. 회전 초밥집은 아래 그림과 같이 N+1개의 의자와 N+1개의 접시로 이루어져 있다. 사람들은 계속 자신의 자리에 앉아 있으며, 매 분마다 접시들은 시계방향으로 한 칸씩 이동한다. S_0에는 셰프가 앉아 있으며, 매 분마다 셰프는 자신 앞에 온 접시가 비어있지 않으면 아무 행동도 하지 않고, 자신 앞에 온 접시가 비어있으면, 한 점의 스시를 만들어 접시에 올린다. 하지만, 현재 상태에서 셰프가 더 이상 ..
문제 출처 : https://www.acmicpc.net/problem/12104 언어 : Kotlin 문제 설명 :두 바이너리 문자열 A와 B가 주어졌을 때, A와 XOR 했을 때, 0이 나오는 B의 순환 순열의 개수를 구하는 프로그램을 작성하시오. 순환 순열이란 순열 P = P0, P1, ..., PN-1이 있을 때, 왼쪽으로 k번 순환 이동시킨 순열이다. 즉, P를 k번 순환 이동 시키면, Pi -> Pi+k mod n 이 된다. 입력 :첫째 줄에 A, 둘째 줄에 B가 주어진다. A와 B의 길이는 105를 넘지 않는 자연수이며, 두 문자열의 길이는 같다. 출력 :첫째 줄에 A와 XOR했을 때, 0이 나오는 B의 순환 순열의 개수를 출력한다. 제한 사항 :시간 제한 : 2초메모리 제한 : 512MB ..
문제 출처 : https://www.acmicpc.net/problem/30684 언어 : Kotlin 문제 설명 :모르고리즘 회장 태윤이는 2024년 모르고리즘을 이끌어갈 회장을 고르려고 한다. 태윤이가 회장을 직접 고르는 이유는 아무도 회장을 맡고 싶어 하지 않기 때문이다. 따라서 태윤이는 이름이 세 글자인 사람 중에서, 사전 순으로 가장 앞선 사람을 회장으로 뽑으려고 한다. 사람들의 이름은 모두 서로 다르고, 길이가 2 이상 5 이하인 알파벳 대문자 A - Z로 이루어져 있다. 이름 S가 이름 T에 비해 사전 순으로 앞선다는 것은 아래 두 조건 중 하나가 성립하는 것과 동치이다. 이때 |S|는 S의 길이이고, S[i]는 S의 i번째 문자를 의미한다. S가 T의 접두사이다. 즉, \lvert S \r..
문제 출처 : https://www.acmicpc.net/problem/10929 언어 : Kotlin 문제 설명 :문자열 S가 주어졌을 때, SHA-224 해시값을 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다. 출력 :첫째 줄에 S의 SHA-224 해시값을 출력한다. 제한 사항 :시간 제한 : 1초메모리 제한 : 256MB 입출력 예 :입력출력Baekjoon880ceaa24e932e5c19350adc50535922ead12ba689a7a6a9a895d2ce 풀이 : 여전히 다른 SHA 문제와 똑같은 풀이import java.io.BufferedReaderimport java.io.Buffer..
문제 출처 : https://www.acmicpc.net/problem/31306 언어 : Kotlin 문제 설명 :The Vowels are a, e, i, o and u, and possibly y. People disagree on whether y is a vowel or not. Unfortunately for you, you have been tasked with counting the number of vowels in a word. You'll have to count how many vowels there are assuming y is a vowel, and assuming y is not. 입력 :The single line of input contains a string of at ..
문제 출처 : https://www.acmicpc.net/problem/21966 언어 : Kotlin 문제 설명 :드높은 남산 위에 우뚝 선(중략)세워라 반석 위에선린의 터를 1개 이상의 문장들이 주어진다. 아래 규칙에 따라 문장들의 중간 부분을 적당히 생략해 25글자 이내로 요약해서 출력하는 프로그램을 작성하자. 단, 입출력의 편의를 위해 문장들을 공백 없이 모두 붙여 구성한 문자열 S가 대신 주어진다. 문자열의 첫 글자부터 가장 먼저 만나는 '.'(마침표)까지, 그리고 각 '.'의 다음 글자부터 가장 먼저 만나는 '.'까지를 한 문장으로 생각하기로 하자. 예를 들어 주어진 문자열 S가 'IamInevitable.IamIronMan.'이라면 'IamInevitable.'이 한 문장, 'IamIronM..
문제 출처 : https://www.acmicpc.net/problem/15874 언어 : Kotlin 문제 설명 :여러분들은 고대 로마의 정치인 율리우스 카이사르를 알고 있는가? 그는 정말 대단한 사람이다! 그는 로마의 독재자로도 유명하지만, 고대 암호의 대표격이라 할 수 있는 카이사르 암호(Caesar Cipher)를 만든 사람이기도 하다. 카이사르 암호는 다음과 같은 방식으로 이뤄진다. 알파벳으로 평문을 작성한다. 해당 평문을 얼마나 밀지를 결정한다. 민다는 것은, 한 글자를 알파벳 상의 다음 글자로 바꾸는 것을 말한다. 예를 들어 네 번 밀기로 결정했다면, A는 E로, V는 Z로 바뀐다. 만약 Z를 한 번 더 민다면 A가 된다. 이를 표로 나타내면 다음과 같다. 원문 A B C D E ... V ..