Simulation & Brute force

<aside> ๐Ÿ’ก

์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฌธ์ œ์—์„œ๋Š” 2์ฐจ์› ๊ณต๊ฐ„์—์„œ์˜ ์™„์ „ ํƒ์ƒ‰ ๋ฐ ๋ฐฉํ–ฅ ๋ฒกํ„ฐ๊ฐ€ ์ž์ฃผ ํ™œ์šฉ๋จ

</aside>

์—ฌํ–‰๊ฐ€๊ฐ€ NN ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ๊ณต๊ฐ„ ์œ„์— ์„œ ์žˆ๋‹ค. ๊ฐ€์žฅ ์™ผ์ชฝ ์œ„ ์ขŒํ‘œ๋Š” (1,1)์ด๋ฉฐ, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜๋Š” (N,N)์ด๋‹ค.
์—ฌํ–‰๊ฐ€๋Š” ์ƒํ•˜์ขŒ์šฐ๋กœ ํ•œ์นธ์”ฉ ์ด๋™ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹œ์ž‘์ขŒํ‘œ๋Š” (1,1)์ด๋‹ค. LRUD์˜ ๋ฌธ์ž์—ด์„ ๋ฐ›์•„์„œ ๋งˆ์ง€๋ง‰์— ์—ฌํ–‰๊ฐ€๊ฐ€ ์œ„์น˜ํ•œ ์ฃ„ํ‘œ๋ฅผ ๊ตฌํ•ด๋ผ. ์ด๋•Œ N
Nํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ๊ณต๊ฐ„์„ ๋ฒ—์–ด๋‚˜๋Š” ์›€์ง์ž„์€ ๋ฌด์‹œ๋œ๋‹ค.

n = int(input())
moves = input()

arr = moves.split(' ')
loc = [1,1]
# LRUD
dx = [-1,1,0,0]
dy = [0,0,-1,1]

for move in arr:
    if(move == 'L'):
        if loc[1] <= 1:
            continue
        else: loc[1]-=1
    if(move == 'R'):
        if loc[1] >= n:
            continue
        else:
            loc[1]+=1
    if(move == 'U'):
        if loc[0] <=1:
            continue
        else: loc[0]-=1
    if(move == 'D'):
        if loc[0] >= n:
            continue
        else: loc[0]+=1
print(loc)

ex) ์‹œ๊ฐ

์ •์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด 00์‹œ 00๋ถ„ 00์ดˆ๋ถ€ํ„ฐ N์‹œ 59๋ถ„ 59์ดˆ๊นŒ์ง€ ๋ชจ๋“  ์‹œ๊ฐ์ค‘์—์„œ 3์ด ํ•˜๋‚˜๋ผ๋„ ํฌํ•จ๋˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ผ.

๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์‹œ๊ฐ์˜ ๊ฒฝ์šฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ชจ๋‘ ์„ธ์„œ ํ’€ ์ˆ˜ ์žˆ๋‹ค

์™„์ „ํƒ์ƒ‰(brute forcing) = ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๊ฒ€์‚ฌํ•ด๋ณด๋Š” ํƒ์ƒ‰๋ฐฉ๋ฒ•

h = int(input())

count = 0
for i in range(h+1):
    for j in range(60):
        for k in range(60):
            if '3' in str(i) + str(j) + str(k):
                count+=1
print(count)

ex) Knight

8*8์˜ ์ฒด์ŠคํŒ ์œ„์—์„œ ํŠน์ • ์ขŒํ‘œ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๋‚˜์ดํŠธ๊ฐ€ ์ด๋™ ๊ฐ€๋Šฅํ•œ ์œ„์น˜์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด๋ผ ๋‚˜์ดํŠธ๋Š” 2๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ์ˆ˜ํ‰์œผ๋กœ ๋‘์นธ ์ด๋™ํ•˜๊ณ  ์ˆ˜์ง์œผ๋กœ ํ•œ์นธ ์ด๋™
  2. ์ˆ˜์ง์œผ๋กœ ๋‘ ์นธ ์ด๋™ํ•˜๊ณ  ์ˆ˜ํ‰์œผ๋กœ ํ•œ์นธ ์ด๋™ ์ž…๋ ฅ์€ a1์ฒ˜๋Ÿผ ์—ด๊ณผ ํ–‰์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.
loc = input()
row = int(loc[1])
col = int(ord(loc[0]) - ord('a')) + 1

steps = [(-2,-1), (-1,-2), (1,-2), (2, -1), (2,1), (1,2), (-1,2) , (-2,1) ]
result = 0
for step in steps:
    next_row = row+step[0]
    next_col = col+step[1]
    if next_row >=1 and next_row <=8 and next_col >=1 and next_col <=8:
        result+=1
print(result)

ex) ๋ฌธ์ž์—ด ์žฌ์ •๋ ฌ

์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž์™€ ์ˆซ์ž(0~9)๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ ๋ชจ๋“  ์•ŒํŒŒ๋ฒณ์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ๊ทธ ๋’ค์— ๋ชจ๋“  ์ˆซ์ž๋ฅผ ๋”ํ•œ ๊ฐ’์„ ์ด์–ด์„œ ์ถœ๋ ฅํ•ด๋ผ.

input = input()
arr = list(input)

sum = 0
char_arr = []
for el in arr:
    if el.isalpha():
        char_arr.append(el)
    else:
        sum+=int(el)
print(''.join(sorted(char_arr)) + str(sum))