문제 출처 : https://www.acmicpc.net/problem/25193 언어 : Kotlin 문제 설명 :곰곰이는 치킨을 좋아한다. 그러다 보니 매 끼니에 치킨을 먹고 있다. 당신은 곰곰이의 트레이너로서 곰곰이의 식단을 관리해주기로 했다.곰곰이가 N일간 먹어야 할 음식들의 리스트가 주어졌을 때, 리스트의 순서를 원하는 대로 조정하여 곰곰이가 연속으로 치킨을 먹는 날의 최댓값을 가장 작게 만들려고 한다.곰곰이의 건강을 위해 위와 같은 프로그램을 작성해 보자. 입력 :첫 번째 줄에 식단을 정할 일수 N (1 두 번째 줄에 음식의 리스트인 길이 N의 문자열 S가 주어진다. 문자열은 영어 대문자로만 이루어져 있다. S_i가 C인 경우, i번째 음식이 치킨이며, 그 외의 경우에는 다른 음식이다. 출력 ..
문제 출처 : https://www.acmicpc.net/problem/19564 언어 : Kotlin 문제 설명 :muse는 네이버 카페에 글을 올리려고 한다. 하지만 키보드가 고장나서, 어떤 키를 누르든 abcdefghijklmnopqrstuvwxyz가 입력된다! muse는 글을 올리고 싶지만, 원하는 글을 쓰기 위해서는 아래와 같은 작업을 해야 한다.abcdefghijklmnopqrstuvwxyz를 K번 반복해서 입력한다.원하는 글자를 마우스로 지워, 최종 글을 완성한다.muse는 많은 글자를 지우는 일이 귀찮기 때문에, K를 최소화하려 한다. muse가 원하는 글을 입력하려면 abcdefghijklmnopqrstuvwxyz를 몇 번 입력해야 하는지 구해 주자. 입력 :muse가 입력하고자 하는 글..
문제 출처 : https://www.acmicpc.net/problem/14584 언어 : Kotlin 문제 설명 :로마의 장군 카이사르는 로마군의 작전을 적이 모르게 하기 위하여 암호를 사용했다. 카이사르는 다음과 같이 문장에 있는 모든 알파벳 글자를 몇 칸 뒤의 알파벳으로 바꾸는 방식으로 암호를 만들었다. 아래 표는 모든 글자를 17칸 뒤의 알파벳으로 바꿨을 때 각 글자가 어떤 알파벳으로 바뀌는지 나타낸 표이다. 이 방법에 따라 ‘Baekjoon Online Judge’를 암호화하면 ‘Srvbaffe Feczev Aluxv’가 된다. 당신은 페르시아 군대의 장군으로서 카이사르의 암호를 해독해야 한다. 당신은 카이사르가 어떤 방법으로 문장을 암호화하는지는 알고 있지만 카이사르가 몇 칸 뒤의 알파벳으로 ..
문제 출처 : https://www.acmicpc.net/problem/13275 언어 : Kotlin 문제 설명 :문자열 S의 부분 문자열 중에서 팰린드롬인 것 중 가장 긴 것의 길이를 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있으며 길이는 1보다 크거나 같고, 100,000보다 작거나 같다. 출력 :가장 긴 팰린드롬 부분 문자열의 길이를 출력한다. 제한 사항 :시간 제한 : 0.5초메모리 제한 : 512MB 입출력 예 :입력출력abcd1abab3dcabccd2abcba5aaaaa5 풀이 : https://small-stepping.tistory.com/986 14444번: 가장 긴 팰린드롬 부분 문자열문제 출처 : https://www.a..
문제 출처 : https://www.acmicpc.net/problem/17201 언어 : Kotlin 문제 설명 :블록체인에 대해 들은 초등학생 관빈이는 자석을 이어 붙여 자석 체인을 만든 다음, 이를 이용한 가상 화폐를 만들고 싶어졌다. 관빈이는 특이한 자석을 가지고 있는데 관빈이가 가지고 있는 자석의 (+)극에는 1이라는 숫자가 쓰여 있고, (-)극에는 2라는 숫자가 쓰여 있다. 그리고 관빈이의 자석은 막대 모양으로, (+)극과 (-)극이 하나씩 있다. 보통, 자석은 같은 극끼리는 밀어내고 다른 극끼리는 서로 끌어당겨 붙는 성질이 있다. 관빈이는 이 성질을 이용해 가지고 있는 자석들을 정성스럽게 모두 이어 붙여 연결된 자석 체인을 만든 뒤 자석 코인의 급등을 꿈꾸며 잠이 들었다. 하지만 그날 밤에,..
문제 출처 : https://www.acmicpc.net/problem/6137 언어 : Kotlin 문제 설명 :N개의 문자로 이루어진 문자열 S가 입력된다.이 문자열의 각 문자들로 새로운 문자열 T를 만들려고한다.문자열 S로 문자열 T를 만드는 규칙은 다음과 같다.문자열 S의 가장 앞의 문자 하나를 문자열 T의 마지막에 추가한다.문자열 S의 가장 뒤의 문자 하나를 문자열 T의 마지막에 추가한다.위 규칙으로 만들어진 문자열 T들 중 사전순으로 가장 빠른 문자열을 출력하는 프로그램을 작성하시오. 입력 :첫 번째 줄에 문자열 S의 길이 N이 주어진다. (N 이후 N개의 줄에 S를 이루는 문자들이 주어진다. 출력 :만들어진 사전순으로 가장 빠른 문자열을 출력한다. 80글자마다 새줄 문자를 출력해야 한다. 제..
문제 출처 : https://www.acmicpc.net/problem/25641 언어 : Kotlin 문제 설명 :소떡소떡은 기다란 꼬치에 소세지와 떡을 끼운 음식이다. 편의상 소떡소떡을 알파벳 s와 t로만 구성된 길이 N의 문자열로 생각하자. 알파벳 s는 소세지를, t는 떡을 의미한다. 위 그림은 길이가 7인 소떡소떡의 예시이다. 유진이는 소떡소떡을 먹기 전에 소떡소떡을 균형 잡힌 소떡소떡으로 만들려고 한다. 꼬치에 꽂힌 소세지와 떡의 개수가 같을 때 이를 균형 잡힌 소떡소떡이라고 한다. 단, 소세지와 떡이 한 개도 꽂혀있지 않다면 균형잡힌 소떡소떡이 아니다. 위 그림은 소세지가 3개, 떡이 4개 꽂혀 있기 때문에 균형 잡힌 소떡소떡이 아니다. 유진이는 소떡소떡의 맨 왼쪽에 있는 소세지나 떡을 떼어낼..
문제 출처 : https://www.acmicpc.net/problem/14444 언어 : Kotlin 문제 설명 :알파벳 소문자로만 이루어진 문자열 S가 주어졌을 때, S의 부분 문자열 중에서 팰린드롬 이면서 길이가 가장 긴 것의 길이를 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 알파벳 소문자로만 이루어진 문자열 S가 주어진다. S의 길이는 100,000을 넘지 않는다. 출력 :첫째 줄에 S의 부분 문자열 중에서 팰린드롬 이면서 길이가 가장 긴 것의 길이를 출력한다. 제한 사항 :시간 제한 : 2초메모리 제한 : 512MB 입출력 예 :입력출력abab3banana5baekjoon2online1eevee5 풀이 : 마나허 알고리즘을 사용하였다.문자열에 존재하는 팰린드롬 부분 문자열을 빠르게 찾을 수..
문제 출처 : https://www.acmicpc.net/problem/19585 언어 : Kotlin 문제 설명 :Sogang ICPC Team에는 색상 이름과 닉네임의 순서로 이여서 팀명을 지으면 ICPC 리저널에서 수상할 수 있다는 전설이 있다. 색상 이름들과 닉네임들이 주어질 때, Q개의 팀에 대해 다음 리저널에서 수상할 수 있을지 전설에 기반해 알려주는 프로그램을 작성하자. 입력 :첫째 줄에는 색상의 종류 C와 닉네임의 개수 N이 주어진다. (1 ≤ C, N ≤ 4,000)다음 C개의 줄에는 색상 이름 C개가 한 줄에 하나씩 주어진다. 색상 이름은 중복되지 않는다.다음 N개의 줄에는 Sogang ICPC Team 구성원들의 닉네임 N개가 한 줄에 하나씩 주어진다. 닉네임도 중복되지 않는다.다음 ..
문제 출처 : https://www.acmicpc.net/problem/28702 언어 : Kotlin 문제 설명 :FizzBuzz 문제는 i = 1, 2, ... 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다.i가 3의 배수이면서 5의 배수이면 “FizzBuzz”를 출력합니다. i가 3의 배수이지만 5의 배수가 아니면 “Fizz”를 출력합니다. i가 3의 배수가 아니지만 5의 배수이면 “Buzz”를 출력합니다.i가 3의 배수도 아니고 5의 배수도 아닌 경우 i를 그대로 출력합니다.FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 주어집니다. 이때, 이 세 문자열 다음에 올 문자열은 무엇일까요? 입력 :FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 한 줄에 ..