์‹œ๋ฆฌ์ฆˆ

โฎ

๐ŸŽ2661๋ฒˆ: ์ข‹์€์ˆ˜์—ด

20161019
BOJ
PS

(๋ญ๊ฐ€ ์ข‹๋‹ค๋Š” ๊ฑด์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ)

๋ฌธ์ œ๋ฅผ ์ฝ์–ด๋ณด๋ฉด ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ•˜๋ฉด 100% ํ’€๋ฆฐ๋‹ค๋Š” ๊ฒƒ์€ ํ™•์‹คํ•˜์ง€๋งŒ N = 80 ์ด๋ผ
๊ทธ๋ƒฅ ์†์œผ๋กœ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.


๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑ ์‹œ์ผœ์•ผ ํ•œ๋‹ค. 

1. ์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ ์ˆ˜์—ด์ด ๊ฐ™์ง€ ์•Š์œผ๋ฉด์„œ 
2. ์ •์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ ๊ฐ€์žฅ ์ˆ˜๊ฐ€ ์ž‘๋„๋ก ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผํ•œ๋‹ค.

2๋ฒˆ ์กฐ๊ฑด์„ ์œ„ํ•ด์„œ๋Š” ์•ž์ชฝ์— ์ž‘์€ ์ˆ˜๊ฐ€ ์˜ค๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ธธ์ด๊ฐ€ i์ธ ๊ฐ€์žฅ ์ž‘์€ ์ข‹์€ ์ˆ˜์—ด์„ S(i) ๋ผ๊ณ  ํ•˜๋ฉด

S(1) = 1 ์ด๋‹ค.

i = 2์ผ๋•Œ์—๋Š” 1๋ฒˆ ์กฐ๊ฑด์— ์˜ํ•ด 11์€ ๋  ์ˆ˜ ์—†๊ณ  ๊ทธ ๋‹ค์Œ ์ž‘์€ ์ˆ˜์ธ 12๊ฐ€ ๋œ๋‹ค.

๊ณ„์†ํ•ด์„œ S(i-1) ์˜ ๋งจ ๋’ค์— 1 2 3 ์ˆœ์„œ๋Œ€๋กœ ๋„ฃ์–ด๋ณด๋ฉด์„œ 1. 2. ๋ฒˆ ์กฐ๊ฑด์„ ๋งŒ์กฑ ์‹œํ‚ค๋Š” ์ˆ˜๋ฅผ ์ฐพ์œผ๋ฉด ์ข‹์€์ˆ˜์—ด์„ ๊ณ„์† ์ฐพ์•„๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. 
S(2) = 12
S(3) = 121
S(4) = 1213
S(5) = 12131
S(6) = 121312
S(7) = 1213121

์ด ๋ฐฉ๋ฒ•์€ i = 8 ์ผ๋•Œ ๋ง‰ํžˆ๊ฒŒ ๋˜๋Š”๋ฐ 
12131211 12131212  12131213 ๋ชจ๋‘ 1๋ฒˆ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ๋ง‰๋ง‰ํ•˜์ง€๋งŒ ์ฐจ๊ทผ์ฐจ๊ทผ ๋Œ์•„๊ฐ€์„œ ์ƒ๊ฐํ•ด๋ณด๋ฉด
i = 7 ์ผ๋•Œ 1213121 ๋Œ€์‹  1213123 ์ด ๊ฐ€๋Šฅํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
๋”ฐ๋ผ์„œ 
S(8) = 1213123 1
S(9) = 1213123 12
S(10) = 1213123 121
S(11) = 1213123 1213
S(12) = 1213123 12131
S(13) = 1213123 121312
S(14) = 1213123 1213121

i = 15 ์ผ ๋•Œ ์•„๊นŒ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ

S(15) = 1213123 1213123 1 ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋˜ 1๋ฒˆ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•œ๋‹ค.

........
.......

์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ํ•˜์ž.
์—ฌ๊ธฐ์„œ ๊ทœ์น™์ฐพ๊ธฐ๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌ.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int n,a['ae'];
void dfs(int here)
{
    for(int i = 1; i <= here/2 ; i++)
    {
        if(equal(a+here-i, a+here, a+here-i-i)) return;
    }
    if(here == n)
    {
        for(int i =  0; i < n ; i++)
            cout<<a[i];
        cout<<'\n';
        exit(0);
    }
    for(int candi = 1 ; candi <= 3; candi++)
    {
        a[here] = candi;
        dfs(here+1);
    }
}
int main()
{
    cin>>n;
    dfs(0);
    return 0;
}

equal(f1, l1, f2)๋Š” f1๊ฐ€ l1๊นŒ์ง€ ์ฆ๊ฐ€ํ•˜๋Š” ๋™์•ˆ f2๋„ ์ฆ๊ฐ€ํ•  ๋•Œ f1, f2๊ฐ€ ๊ฐ€๋ฆฌํ‚จ ๋‘ ์ˆ˜์—ด์ด ๊ฐ™์€์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

์ด์ƒํ•˜๊ฒŒ equal๋กœ๋Š” ์ž˜๋˜๋Š”๋ฐ strncmp๋กœ ํ’€๋ ค๊ณ  ํ•˜๋ฉด WA๊ฐ€ ๋‚˜์˜จ๋‹ค.
Upsolving์ด ํ•„์š”ํ•œ ๋ฌธ์ œ

.

piano (press key Q)

Categories

flutter ( 82 ) dart ( 34 ) android ( 32 ) kotlin ( 11 ) plugin ( 8 ) provider ( 8 ) vim ( 7 ) bloc ( 6 ) iOS ( 6 ) state management ( 6 ) ํ”Œ๋Ÿฌํ„ฐ ( 6 ) PS ( 5 ) algorithm ( 5 ) architecture ( 5 ) async ( 5 ) getx ( 5 ) java ( 5 ) API ( 4 ) BOJ ( 4 ) class ( 4 ) daily ( 4 ) git ( 4 ) golang ( 4 ) memo ( 4 ) riverpod ( 4 ) state ( 4 ) stream ( 4 ) test ( 4 ) web ( 4 ) widget ( 4 ) windows ( 4 ) HTTP ( 3 ) androidX ( 3 ) app state ( 3 ) context ( 3 ) crash ( 3 ) db ( 3 ) editor ( 3 ) error ( 3 ) extension ( 3 ) github ( 3 ) hive ( 3 ) ide ( 3 ) package ( 3 ) pubspec ( 3 ) python ( 3 ) syntax ( 3 ) vscode ( 3 ) app icon ( 2 ) await ( 2 ) chocolatey ( 2 ) consumer ( 2 ) cp949 ( 2 ) deployment ( 2 ) dev ( 2 ) flavor ( 2 ) gesture ( 2 ) globalkey ( 2 ) go ( 2 ) google ( 2 ) hack ( 2 ) js ( 2 ) json ( 2 ) key ( 2 ) keystore ( 2 ) list ( 2 ) listview ( 2 ) lock ( 2 ) mac ( 2 ) map ( 2 ) navigation ( 2 ) nosql ( 2 ) project ( 2 ) pub ( 2 ) recyclerview ( 2 ) rxdart ( 2 ) sdk ( 2 ) selector ( 2 ) setting ( 2 ) size ( 2 ) soc ( 2 ) synchronized ( 2 ) tdd ( 2 ) tip ( 2 ) version ( 2 ) viewmodel ( 2 ) vundle ( 2 ) webview ( 2 ) xcode ( 2 ) yaml ( 2 ) ์ฑ… ( 2 ) ํ”Œ๋Ÿฌํ„ฐ ๋‹จ์  ( 2 ) 16.0 ( 1 ) 2.0 ( 1 ) 2023 ( 1 ) AATP2 ( 1 ) ChangeNotifierProvider ( 1 ) Example ( 1 ) Guava ( 1 ) ImageReader ( 1 ) Mo's algorithm ( 1 ) OAuth2 ( 1 ) OpenGL ( 1 ) Oreo ( 1 ) ProgressBar ( 1 ) REST API ( 1 ) Trie ( 1 ) activity ( 1 ) adaptive ( 1 ) android P ( 1 ) android context ( 1 ) android11 ( 1 ) apktool2 ( 1 ) app exit ( 1 ) append ( 1 ) appicon ( 1 ) arkit ( 1 ) array ( 1 ) asciidoc ( 1 ) async * ( 1 ) async* ( 1 ) audio ( 1 ) authorization ( 1 ) await for ( 1 ) behaviorsubject ( 1 ) beta ( 1 ) binary ( 1 ) binarysearch ( 1 ) blender ( 1 ) book ( 1 ) bottomsheet ( 1 ) break ( 1 ) broadcast ( 1 ) browser ( 1 ) bubbles ( 1 ) bug ( 1 ) build ( 1 ) buildcontext ( 1 ) buildnumber ( 1 ) bundle ( 1 ) button ( 1 ) bytecode ( 1 ) cache ( 1 ) camera2 ( 1 ) cameramanager ( 1 ) cd ( 1 ) chrome ( 1 ) ci ( 1 ) circle ( 1 ) clean ( 1 ) clean architecture ( 1 ) cli ( 1 ) clip ( 1 ) clipboard ( 1 ) cloud ide ( 1 ) cmdlet ( 1 ) code ( 1 ) coding test ( 1 ) command ( 1 ) comparator ( 1 ) complexity ( 1 ) concurrency ( 1 ) conditional ( 1 ) const ( 1 ) constraint ( 1 ) constraintlayout ( 1 ) controlc ( 1 ) controlv ( 1 ) converter ( 1 ) copy ( 1 ) copy project ( 1 ) coupling ( 1 ) coverage ( 1 ) cp ( 1 ) css ( 1 ) cupertino ( 1 ) cursor ( 1 ) cv ( 1 ) data class ( 1 ) data structure ( 1 ) dataBinding ( 1 ) database ( 1 ) debounce ( 1 ) decompile ( 1 ) delegate ( 1 ) deno ( 1 ) design pattern ( 1 ) development ( 1 ) device ( 1 ) di ( 1 ) dialog ( 1 ) dio ( 1 ) drawable ( 1 ) drug ( 1 ) emmet ( 1 ) encoding ( 1 ) english ( 1 ) entries ( 1 ) environment ( 1 ) equality ( 1 ) equatable ( 1 ) euc-kr ( 1 ) euckr ( 1 ) exit ( 1 ) expand ( 1 ) expanded ( 1 ) export ( 1 ) extension method ( 1 ) facade ( 1 ) fake ( 1 ) field ( 1 ) figma ( 1 ) final ( 1 ) fixed ( 1 ) flutter pub ( 1 ) flutter web ( 1 ) flutter_inappwebview ( 1 ) flutter_test ( 1 ) flutterflow ( 1 ) fold ( 1 ) fonts ( 1 ) form ( 1 ) frame ( 1 ) future ( 1 ) gestureDetector ( 1 ) gestureRecognizer ( 1 ) gesturearena ( 1 ) get-command ( 1 ) get_cli ( 1 ) getbuilder ( 1 ) getx๋‹จ์  ( 1 ) gitignore ( 1 ) glut ( 1 ) google fonts ( 1 ) gopath ( 1 ) goto ( 1 ) gradient ( 1 ) graphics ( 1 ) gvim ( 1 ) hackaton ( 1 ) hash ( 1 ) hashmap ( 1 ) hot reload ( 1 ) how to ( 1 ) html ( 1 ) i18n ( 1 ) icon ( 1 ) id ( 1 ) impeller ( 1 ) implementation ( 1 ) import ( 1 ) indicator ( 1 ) inkwell ( 1 ) interrupt ( 1 ) intl ( 1 ) introduction ( 1 ) io ( 1 ) isar ( 1 ) iterable ( 1 ) iteration ( 1 ) javascript ( 1 ) julia ( 1 ) juno ( 1 ) jupyter ( 1 ) kakaomap ( 1 ) keytool ( 1 ) korean ( 1 ) kotlin syntax ( 1 ) l10n ( 1 ) lambda ( 1 ) language ( 1 ) layer ( 1 ) layout ( 1 ) lineageOS ( 1 ) localkey ( 1 ) localtoglobal ( 1 ) long list ( 1 ) ls ( 1 ) mac osx ( 1 ) markdown ( 1 ) markup ( 1 ) material ( 1 ) method ( 1 ) microtask ( 1 ) migrate ( 1 ) mintlify ( 1 ) mock ( 1 ) module ( 1 ) monitor ( 1 ) moor ( 1 ) mouse ( 1 ) mouseregion ( 1 ) multiplatform ( 1 ) multiset ( 1 ) multithread ( 1 ) mutable ( 1 ) mvvm ( 1 ) new ( 1 ) node ( 1 ) nodejs ( 1 ) nosuchmethod ( 1 ) null-safety ( 1 ) numberformat ( 1 ) nvim ( 1 ) object ( 1 ) objectbox ( 1 ) objectkey ( 1 ) obx ( 1 ) online ide ( 1 ) operator ( 1 ) orientation ( 1 ) parabeac ( 1 ) parse ( 1 ) paste ( 1 ) path ( 1 ) pattern ( 1 ) pitfall ( 1 ) play store ( 1 ) pod ( 1 ) podfile ( 1 ) pointer ( 1 ) pointers ( 1 ) powershell ( 1 ) private ( 1 ) programming ( 1 ) pull to refresh ( 1 ) puzzle ( 1 ) pycharm ( 1 ) realitykit ( 1 ) recursion ( 1 ) reduce ( 1 ) reference ( 1 ) regex ( 1 ) regular expression ( 1 ) release note ( 1 ) renderbox ( 1 ) renderobject ( 1 ) repl ( 1 ) repository ( 1 ) response ( 1 ) rm ( 1 ) rotue ( 1 ) round ( 1 ) run ( 1 ) scope ( 1 ) scroll ( 1 ) search ( 1 ) server ( 1 ) serverless ( 1 ) service ( 1 ) sharp ( 1 ) singlerepo ( 1 ) singleton ( 1 ) sketch ( 1 ) sliver ( 1 ) sliverlist ( 1 ) snippets ( 1 ) sogae ( 1 ) sorting ( 1 ) source ( 1 ) sparse ( 1 ) sparse array ( 1 ) spec ( 1 ) split ( 1 ) sqflite ( 1 ) sqlite ( 1 ) sqrt decomposition ( 1 ) stateful ( 1 ) statefulwidget ( 1 ) step ( 1 ) stepper ( 1 ) string ( 1 ) stringbuffer ( 1 ) stringbuilder ( 1 ) studio ( 1 ) study ( 1 ) sub-directory ( 1 ) svn ( 1 ) swiftui ( 1 ) swipe to refresh ( 1 ) system_alert_window ( 1 ) system_cache ( 1 ) systemnavigator ( 1 ) tail recursion ( 1 ) tailrec ( 1 ) tap test ( 1 ) text ( 1 ) texteditingcontroller ( 1 ) textfield ( 1 ) texttheme ( 1 ) themedata ( 1 ) then ( 1 ) thread ( 1 ) throttle ( 1 ) time ( 1 ) tool ( 1 ) tools ( 1 ) tooltip ( 1 ) ts ( 1 ) tutorial ( 1 ) typescript ( 1 ) ui ( 1 ) unittest ( 1 ) update ( 1 ) usb ( 1 ) utf8 ( 1 ) ux ( 1 ) valuekey ( 1 ) variable ( 1 ) vector ( 1 ) versioncode ( 1 ) very_good ( 1 ) view ( 1 ) vim plugin ( 1 ) vimrc ( 1 ) virtualenv ( 1 ) wasm ( 1 ) web app ( 1 ) webview_flutter ( 1 ) while ( 1 ) widget tree ( 1 ) window ( 1 ) wsl ( 1 ) yield ( 1 ) ๊ฐ•์˜ ( 1 ) ๊ฐœ๋ฐœ ( 1 ) ๊ฐœ๋ฐœ ๊ณต๋ถ€ ( 1 ) ๊ณต๋ถ€๋ฒ• ( 1 ) ๊ทธ๋ž˜ํ”ฝ์Šค ( 1 ) ๊ผฌ๋ฆฌ์žฌ๊ท€ ( 1 ) ๊ฟ€ํŒ ( 1 ) ๋ฐ๋…ธ ( 1 ) ๋‘์ค„ ( 1 ) ๋””๋…ธ ( 1 ) ๋ฒˆ์—ญ ( 1 ) ๋ธ”๋ก ( 1 ) ์ƒํƒœ๊ด€๋ฆฌ ( 1 ) ์‹คํ—˜ ( 1 ) ์•ˆ๋“œ๋กœ์ด๋“œ ( 1 ) ์•ˆ๋“œ๋กœ์ด๋“œํ”„๋กœ์ ํŠธ ( 1 ) ์•ˆ๋“œ๋กœ์ด๋“œํ”„๋กœ์ ํŠธ๋ณต์‚ฌ ( 1 ) ์–ด์ด์—†๋Š” ( 1 ) ์กฐ๊ฑด๋ถ€ ์ž„ํฌํŠธ ( 1 ) ์ฃผ์ ˆ์ฃผ์ ˆ๋ถ„๋…ธ์กฐ์ ˆ์‹คํŒจ์˜์‹์œผํ๋ฆ„ ( 1 ) ํŒจํ‚ค์ง€ ( 1 ) ํ”„๋กœ์ ํŠธ๋ณต์‚ฌ ( 1 ) ํ”Œ๋Ÿฌ๊ทธ์ธ ( 1 )