From 9f9a08459eb1a4fc7fea5bc618b86b860b93c82c Mon Sep 17 00:00:00 2001 From: belowyoon <92996412+belowyoon@users.noreply.github.com> Date: Thu, 25 Apr 2024 03:44:34 +0900 Subject: [PATCH] =?UTF-8?q?[Gold=20V]=20Title:=20Moo=20=EA=B2=8C=EC=9E=84,?= =?UTF-8?q?=20Time:=200=20ms,=20Memory:=202020=20KB=20-BaekjoonHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oo\342\200\205\352\262\214\354\236\204.cc" | 40 ++++++++++++++++++ .../README.md" | 42 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 "\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/Moo\342\200\205\352\262\214\354\236\204.cc" create mode 100644 "\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/README.md" diff --git "a/\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/Moo\342\200\205\352\262\214\354\236\204.cc" "b/\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/Moo\342\200\205\352\262\214\354\236\204.cc" new file mode 100644 index 0000000..e8e889c --- /dev/null +++ "b/\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/Moo\342\200\205\352\262\214\354\236\204.cc" @@ -0,0 +1,40 @@ +#include +#include +#include + +using namespace std; + +int main() { + ios_base::sync_with_stdio(0); + cin.tie(0); + + int n; + cin >> n; + + int len = 3; + int mid = 3; + + while (n > len) { + mid++; + len = len * 2 + mid; + } + + while(true) { + int prev = (len-mid) / 2; + + if (n <= prev) { + mid--; + len = prev; + } else if (n > prev + mid) { + n -= prev + mid; + mid--; + len = prev; + } else { + n -= prev; + break; + } + } + if (n == 1) cout << "m"; + else cout << "o"; + return 0; +} diff --git "a/\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/README.md" "b/\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/README.md" new file mode 100644 index 0000000..117535b --- /dev/null +++ "b/\353\260\261\354\244\200/Gold/5904.\342\200\205Moo\342\200\205\352\262\214\354\236\204/README.md" @@ -0,0 +1,42 @@ +# [Gold V] Moo 게임 - 5904 + +[문제 링크](https://www.acmicpc.net/problem/5904) + +### 성능 요약 + +메모리: 2020 KB, 시간: 0 ms + +### 분류 + +분할 정복, 재귀 + +### 제출 일자 + +2024년 4월 25일 03:44:27 + +### 문제 설명 + +

Moo는 술자리에서 즐겁게 할 수 있는 게임이다. 이 게임은 Moo수열을 각 사람이 하나씩 순서대로 외치면 되는 게임이다.

+ +

Moo 수열은 길이가 무한대이며, 다음과 같이 생겼다.

+ +
m o o m o o o m o o m o o o o m o o m o o o m o o m o o o o o 
+ +

Moo 수열은 다음과 같은 방법으로 재귀적으로 만들 수 있다. 먼저, S(0)을 길이가 3인 수열 "m o o"이라고 하자. 1보다 크거나 같은 모든 k에 대해서, S(k)는 S(k-1)과 o가 k+2개인 수열 "m o ... o" 와 S(k-1)을 합쳐서 만들 수 있다.

+ +
S(0) = "m o o"
+S(1) = "m o o m o o o m o o"
+S(2) = "m o o m o o o m o o m o o o o m o o m o o o m o o"
+ +

위와 같은 식으로 만들면, 길이가 무한대인 문자열을 만들 수 있으며, 그 수열을 Moo 수열이라고 한다.

+ +

N이 주어졌을 때, Moo 수열의 N번째 글자를 구하는 프로그램을 작성하시오.

+ +### 입력 + +

첫째 줄에 N (1 ≤ N ≤ 109)이 주어진다.

+ +### 출력 + +

N번째 글자를 출력한다.

+