์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์๋ํด๋ผ์ฐ๋
- datascience
- dataframe
- numpy
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- pandas
- ์ฃผ์ฑ๋ถ๋ถ์
- opencv
- ADsP
- ํ ์คํธ๋ถ์
- ๋์ํ๋ณธ
- ๋ฐ์ดํฐ๋ถ์
- ์ธ๋์ํ๋ง
- iloc
- Python
- ๋ ๋ฆฝํ๋ณธ
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- DBSCAN
- t-test
- ๊ตฐ์งํ
- PCA
- ์ค๋ฒ์ํ๋ง
- LDA
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ๋น ๋ฐ์ดํฐ
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- Lambda
- ํ์ด์ฌ
- ํฌ๋กค๋ง
- ADP
Data Science LAB
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๋ฐฉ๋ฌธ ๊ธธ์ด) ๋ณธ๋ฌธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level2 (๋ฐฉ๋ฌธ ๊ธธ์ด)
ใ ใ ใ ใ 2023. 1. 17. 03:061. ๋ฌธ์ ์ค๋ช
๊ฒ์ ์บ๋ฆญํฐ๋ฅผ 4๊ฐ์ง ๋ช ๋ น์ด๋ฅผ ํตํด ์์ง์ด๋ ค ํฉ๋๋ค. ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- U: ์์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
- D: ์๋์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
- R: ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
- L: ์ผ์ชฝ์ผ๋ก ํ ์นธ ๊ฐ๊ธฐ
์บ๋ฆญํฐ๋ ์ขํํ๋ฉด์ (0, 0) ์์น์์ ์์ํฉ๋๋ค. ์ขํํ๋ฉด์ ๊ฒฝ๊ณ๋ ์ผ์ชฝ ์(-5, 5), ์ผ์ชฝ ์๋(-5, -5), ์ค๋ฅธ์ชฝ ์(5, 5), ์ค๋ฅธ์ชฝ ์๋(5, -5)๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, "ULURRDLLU"๋ก ๋ช ๋ นํ๋ค๋ฉด
- 1๋ฒ ๋ช ๋ น์ด๋ถํฐ 7๋ฒ ๋ช ๋ น์ด๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์์ง์ ๋๋ค.
- 8๋ฒ ๋ช ๋ น์ด๋ถํฐ 9๋ฒ ๋ช ๋ น์ด๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์์ง์ ๋๋ค.
์ด๋, ์ฐ๋ฆฌ๋ ๊ฒ์ ์บ๋ฆญํฐ๊ฐ ์ง๋๊ฐ ๊ธธ ์ค ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ ์์์์ ๊ฒ์ ์บ๋ฆญํฐ๊ฐ ์์ง์ธ ๊ธธ์ด๋ 9์ด์ง๋ง, ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ 7์ด ๋ฉ๋๋ค. (8, 9๋ฒ ๋ช ๋ น์ด์์ ์์ง์ธ ๊ธธ์ 2, 3๋ฒ ๋ช ๋ น์ด์์ ์ด๋ฏธ ๊ฑฐ์ณ ๊ฐ ๊ธธ์ ๋๋ค)
๋จ, ์ขํํ๋ฉด์ ๊ฒฝ๊ณ๋ฅผ ๋์ด๊ฐ๋ ๋ช ๋ น์ด๋ ๋ฌด์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, "LULLLLLLU"๋ก ๋ช ๋ นํ๋ค๋ฉด
- 1๋ฒ ๋ช ๋ น์ด๋ถํฐ 6๋ฒ ๋ช ๋ น์ด๋๋ก ์์ง์ธ ํ, 7, 8๋ฒ ๋ช ๋ น์ด๋ ๋ฌด์ํฉ๋๋ค. ๋ค์ 9๋ฒ ๋ช ๋ น์ด๋๋ก ์์ง์ ๋๋ค.
์ด๋ ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ 7์ด ๋ฉ๋๋ค.
๋ช ๋ น์ด๊ฐ ๋งค๊ฐ๋ณ์ dirs๋ก ์ฃผ์ด์ง ๋, ๊ฒ์ ์บ๋ฆญํฐ๊ฐ ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ฅผ ๊ตฌํ์ฌ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
2. ์ ํ์ฌํญ
- dirs๋ stringํ์ผ๋ก ์ฃผ์ด์ง๋ฉฐ, 'U', 'D', 'R', 'L' ์ด์ธ์ ๋ฌธ์๋ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- dirs์ ๊ธธ์ด๋ 500 ์ดํ์ ์์ฐ์์ ๋๋ค.
3. ๋ด ํ์ด
def solution(dirs):
answer = []
moving = {'L':[-1,0], 'R':[1,0], 'U':[0,1], 'D':[0,-1]}
x,y = 0,0
for d in dirs:
dx, dy = moving[d][0], moving[d][1]
if abs(x+dx) <= 5 and abs(y+dy) <= 5:
answer.append((dx+x,dy+y,x,y))
answer.append((x,y,dx+x,dy+y))
x = x+dx
y = y+dy
return len(set(answer))//2
4. ๋ค๋ฅธ ์ฌ๋ ํ์ด
def solution(dirs):
s = set()
d = {'U': (0,1), 'D': (0, -1), 'R': (1, 0), 'L': (-1, 0)}
x, y = 0, 0
for i in dirs:
nx, ny = x + d[i][0], y + d[i][1]
if -5 <= nx <= 5 and -5 <= ny <= 5:
s.add((x,y,nx,ny))
s.add((nx,ny,x,y))
x, y = nx, ny
return len(s)//2