์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - Summer/Winter Coding(~2018)
<์์ด ๋๋ง์๊ธฐ>
๋ฌธ์ ์ค๋ช
1๋ถํฐ n๊น์ง ๋ฒํธ๊ฐ ๋ถ์ด์๋ n๋ช ์ ์ฌ๋์ด ์์ด ๋๋ง์๊ธฐ๋ฅผ ํ๊ณ ์์ต๋๋ค. ์์ด ๋๋ง์๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ์งํ๋ฉ๋๋ค.
1. 1๋ฒ๋ถํฐ ๋ฒํธ ์์๋๋ก ํ ์ฌ๋์ฉ ์ฐจ๋ก๋๋ก ๋จ์ด๋ฅผ ๋งํฉ๋๋ค.
2. ๋ง์ง๋ง ์ฌ๋์ด ๋จ์ด๋ฅผ ๋งํ ๋ค์์๋ ๋ค์ 1๋ฒ๋ถํฐ ์์ํฉ๋๋ค.
3. ์์ฌ๋์ด ๋งํ ๋จ์ด์ ๋ง์ง๋ง ๋ฌธ์๋ก ์์ํ๋ ๋จ์ด๋ฅผ ๋งํด์ผ ํฉ๋๋ค.
4. ์ด์ ์ ๋ฑ์ฅํ๋ ๋จ์ด๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
5. ํ ๊ธ์์ธ ๋จ์ด๋ ์ธ์ ๋์ง ์์ต๋๋ค.
๋ค์์ 3๋ช ์ด ๋๋ง์๊ธฐ๋ฅผ ํ๋ ์ํฉ์ ๋ํ๋ ๋๋ค.
tank → kick → know → wheel → land → dream → mother → robot → tank
์ ๋๋ง์๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
- 1๋ฒ ์ฌ๋์ด ์์ ์ ์ฒซ ๋ฒ์งธ ์ฐจ๋ก์ tank๋ฅผ ๋งํฉ๋๋ค.
- 2๋ฒ ์ฌ๋์ด ์์ ์ ์ฒซ ๋ฒ์งธ ์ฐจ๋ก์ kick์ ๋งํฉ๋๋ค.
- 3๋ฒ ์ฌ๋์ด ์์ ์ ์ฒซ ๋ฒ์งธ ์ฐจ๋ก์ know๋ฅผ ๋งํฉ๋๋ค.
- 1๋ฒ ์ฌ๋์ด ์์ ์ ๋ ๋ฒ์งธ ์ฐจ๋ก์ wheel์ ๋งํฉ๋๋ค.
- (๊ณ์ ์งํ)
๋๋ง์๊ธฐ๋ฅผ ๊ณ์ ์งํํด ๋๊ฐ๋ค ๋ณด๋ฉด, 3๋ฒ ์ฌ๋์ด ์์ ์ ์ธ ๋ฒ์งธ ์ฐจ๋ก์ ๋งํ tank๋ผ๋ ๋จ์ด๋ ์ด์ ์ ๋ฑ์ฅํ๋ ๋จ์ด์ด๋ฏ๋ก ํ๋ฝํ๊ฒ ๋ฉ๋๋ค.
์ฌ๋์ ์ n๊ณผ ์ฌ๋๋ค์ด ์์๋๋ก ๋งํ ๋จ์ด words ๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ์ฅ ๋จผ์ ํ๋ฝํ๋ ์ฌ๋์ ๋ฒํธ์ ๊ทธ ์ฌ๋์ด ์์ ์ ๋ช ๋ฒ์งธ ์ฐจ๋ก์ ํ๋ฝํ๋์ง๋ฅผ ๊ตฌํด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- ๋๋ง์๊ธฐ์ ์ฐธ์ฌํ๋ ์ฌ๋์ ์ n์ 2 ์ด์ 10 ์ดํ์ ์์ฐ์์ ๋๋ค.
- words๋ ๋๋ง์๊ธฐ์ ์ฌ์ฉํ ๋จ์ด๋ค์ด ์์๋๋ก ๋ค์ด์๋ ๋ฐฐ์ด์ด๋ฉฐ, ๊ธธ์ด๋ n ์ด์ 100 ์ดํ์ ๋๋ค.
- ๋จ์ด์ ๊ธธ์ด๋ 2 ์ด์ 50 ์ดํ์ ๋๋ค.
- ๋ชจ๋ ๋จ์ด๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๋๋ง์๊ธฐ์ ์ฌ์ฉ๋๋ ๋จ์ด์ ๋ป(์๋ฏธ)์ ์ ๊ฒฝ ์ฐ์ง ์์ผ์ ๋ ๋ฉ๋๋ค.
- ์ ๋ต์ [ ๋ฒํธ, ์ฐจ๋ก ] ํํ๋ก return ํด์ฃผ์ธ์.
- ๋ง์ฝ ์ฃผ์ด์ง ๋จ์ด๋ค๋ก ํ๋ฝ์๊ฐ ์๊ธฐ์ง ์๋๋ค๋ฉด, [0, 0]์ return ํด์ฃผ์ธ์.
๋ฌธ์ ํ์ด
-my solution
def solution(n, words):
answer = []
temp=words[0][-1] #์ฒซ๋ฒ์งธ ๋จ์ด์ ๋ ๋ฌธ์
for i in range(1,len(words)):
forward=words[i][0] #๋ค์ ๋จ์ด์ ์ฒซ ๋ฌธ์
tempwords=words[0:i+1] #์ค๋ณต ํ์ธ์ ์ํด list์ ์ ์ฅ
if(tempwords.count(words[i])>1): #์ค๋ณต์ด ์๋ค๋ฉด
answer.append(i%n+1) #๋ฒํธ
answer.append(i//n+1) #์ฐจ๋ก
break
if(forward!=temp): #์ฒซ ๋ฌธ์์ ๋ ๋ฌธ์๊ฐ ๊ฐ์ง ์๋ค๋ฉด
answer.append(i%n+1) #๋ฒํธ
answer.append(i//n+1) #์ฐจ๋ก
break
temp=words[i][-1] #๋ ๋ฌธ์๋ฅผ ํ์ฌ ๋จ์ด์ ๋ ๋ฌธ์๋ก ๋ฐ๊ฟ์ค
if(len(answer)==0): #list์ ๊ธธ์ด๊ฐ 0์ด๋ฉด ํ๋ฝ์ ์์
answer.append(0)
answer.append(0)
return answer
์ฒ์์ ์ด ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ ๊น๋ด ์กฐ๋ง์กฐ๋งํ์๋ค. ๋คํํ ์๊ฐ ์ด๊ณผ๋ ๋ฐ์ํ์ง ์๊ณ ,
ํ ์คํธ ์ผ์ด์ค 3๋ฌธ์ ์์ ์คํจ๊ฐ ๋ฐ์ํ์๋ค. ์์ธ ์ํฉ์ด ์ด๋ค ๊ฒ์ด ์กด์ฌํ๋์ง ์ดํด๋ณธ ๊ฒฐ๊ณผ ์ค๋ณต ๋จ์ด๋ฅผ
ํ์ธํ ๋ ์์ ์ ์์ ์์์ ๋งํ ๊ฒ๋ค๊ณผ ๋น๊ตํด์ผ ํ๋๋ฐ ์ ์ฒด list์ ๋ํด ์ค๋ณต์ ํ๋ณํ์ฌ ์คํจ๊ฐ ๋ฐ์ํ๋ค๋
๊ฒ์ ์๊ฒ ๋์๋ค. ์ด ๋ถ๋ถ์ ๋ํ์ฌ ์์ธ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ๋ ๋ฌธ์ ๋ฅผ ํต๊ณผํ ์ ์์๋ค.
1) list ๋งจ ์ฒ์ ๋จ์ด์ ๋ ๋ฌธ์๋ง ์ ์ฅ
2) list ์ํ (๋๋ฒ์งธ ๋จ์ด๋ถํฐ)
2-1) ๋จ์ด์ ์ฒซ ๋ฌธ์๋ฅผ ์ ์ฅ
2-2) ๋จ์ด์ ์ค๋ณต ํ์ธ์ ์ํด ํ์ฌ ์ธ๋ฑ์ค๊น์ง์ ๋ฌธ์๋ค๋ง ๋ฐ๋ก list์ ์ ์ฅํ์ฌ
์ค๋ณต ํ๋ณ -> ์ค๋ณต์ด ์๋ค๋ฉด ๋ฒํธ์ ์ฐจ๋ก๋ฅผ answer list์ ์ถ๊ฐํ ํ ์ค์ง
2-3) ์ฒซ ๋ฌธ์์ ๋ ๋ฌธ์๊ฐ ๊ฐ์ง ์๋ค๋ฉด -> ํ๋ฝ์ ๋ฐ์(๋ฒํธ, ์ฐจ๋ก answer list์ ์ถ๊ฐ ํ ์ค์ง)
2-4) ํ์ฌ ์ธ๋ฑ์ค์ ๋จ์ด์ ๋ ๋ฌธ์์ ๋ค์ ๋จ์ด์ ์ฒซ ๋ฌธ์๋ฅผ ๋น๊ต ์ํด ํ์ฌ ์ธ๋ฑ์ค ๋จ์ด์ ๋ ๋ฌธ์ ์ ์ฅ
3) answer list์ ๊ธธ์ด๊ฐ 0์ด๋ฉด -> ํ๋ฝ์๊ฐ ์์ (0,0์ answer list์ ์ถ๊ฐ)
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] [1์ฐจ] ๋ด์ค ํด๋ฌ์คํฐ๋ง - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.01.19 |
---|---|
[programmers] [1์ฐจ] ์บ์ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.01.19 |
[programmers] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ - 2017 ํ์คํ์ด (0) | 2021.01.11 |
[programmers] ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1 (0) | 2021.01.11 |
[programmers] ์์ฐ - Summer/Winter Coding(~2018) (0) | 2021.01.11 |