[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๐ŸŒน ๊ตฌํ˜„(Implementation): ์‹œ๋ฎฌ๋ ˆ์ด์…˜๊ณผ ์™„์ „ ํƒ์ƒ‰

Joey Hongยท2020๋…„ 10์›” 10์ผ
2
post-custom-banner

์‹œ๋ฎฌ๋ ˆ์ด์…˜, ๊ตฌํ˜„, ์™„์ „ ํƒ์ƒ‰์€ ์„œ๋กœ ์œ ์‚ฌํ•œ ์ ์ด ๋งŽ๋‹ค

์‹œ๋ฎฌ๋ ˆ์ด์…˜(Simulation)
์ผ๋ จ์˜ ๋ช…๋ น์— ๋”ฐ๋ผ์„œ ๊ฐœ์ฒด๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒ

ํ’€์ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์€ ์‰ฝ์ง€๋งŒ ์†Œ์Šค์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ

์ข…๋ฅ˜

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ„๋‹จํ•œ๋ฐ ์ฝ”๋“œ๊ฐ€ ์ง€๋‚˜์น  ๋งŒํผ ๊ธธ์–ด์ง€๋Š” ๋ฌธ์ œ
  • ์‹ค์ˆ˜ ์—ฐ์‚ฐ์„ ๋‹ค๋ฃจ๊ณ  ํŠน์ • ์†Œ์ˆ˜์  ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ
  • ๋ฌธ์ž์—ด์„ ํŠน์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ์„œ ๋Š์–ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ
  • ์ ์ ˆํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ

ํŠน์ง•

์ผ๋ฐ˜์ ์œผ๋กœ 2์ฐจ์› ๊ณต๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ๊ฐ€ ๋งŽ์ด ๋‚˜์˜จ๋‹ค
2์ฐจ์› ๊ณต๊ฐ„์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ํ–‰๋ ฌ(Matrix) ๊ฐœ๋…์„ ์‚ฌ์šฉ
์ด์ฐจ์› ๊ณต๊ฐ„์—์„œ์˜ ๋ฐฉํ–ฅ ๋ฒกํ„ฐ๊ฐ€ ์ž์ฃผ ๋‚˜์˜ด

[๋ฌธ์ œ] ์ƒํ•˜์ขŒ์šฐ

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

  • ํ•œ ์ค„์— ๋„์–ด์“ฐ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ L, R, U, D ์ค‘ ํ•˜๋‚˜์˜ ๋ฌธ์ž๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ํ˜€์žˆ์Œ
  • ๊ฐ ๋ฐฉํ–ฅ์œผ๋กœ ํ•œ ์นธ ์ด๋™ (L: ์™ผ์ชฝ, R: ์˜ค๋ฅธ์ชฝ, U: ์œ„, D: ์•„๋ž˜)
  • N x N ์ •์‚ฌ๊ฐํ˜• ๊ณต๊ฐ„์„ ๋ฒ—์–ด๋‚˜๋Š” ์›€์ง์ž„์€ ๋ฌด์‹œ๋จ

๋‹ต์•ˆ ์˜ˆ์‹œ

n = int(input())
x, y = 1, 1
plans = input().split()

dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
direction = ['L', 'R', 'U', 'D']

for plan in plans:
	for i in range(len(direction)):
		nx = x + dx[i]
		ny = y + dy[i]
	if nx < 1 or ny < 1 or nx > n or ny > n:
		continue
	x, y = nx, ny

print(x, y)

[๋ฌธ์ œ] ์‹œ๊ฐ

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

ํ•ด๊ฒฐ๋ฒ•

๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ํ•˜๋‚˜์”ฉ ์„ธ์„œ ํ‘ผ๋‹ค
์™„์ „ ํƒ์ƒ‰ (Brute Forcing) ๋ฌธ์ œ ์œ ํ˜•

์ •๋‹น์„ฑ ๋ถ„์„

ํ•˜๋ฃจ๋Š” 86,400์ดˆ๋ผ ๋ชจ๋“  ๊ฒฝ์šฐ๋Š” 86,400๊ฐ€์ง€๋กœ ์ปดํ“จํ„ฐ๊ฐ€ ์‰ฝ๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค

๋‹ต์•ˆ ์˜ˆ์‹œ

N = int(input())

count = 0
for h in range(N + 1):
	for m in range(60):
		for s in range(60):
			if '3' in str(h) + str(m) + str(s):
				count += 1

print(count)

[๋ฌธ์ œ] ์™•์‹ค์˜ ๋‚˜์ดํŠธ

์™•์‹ค ์ •์›์€ 8 x 8 ์ขŒํ‘œ ํ‰๋ฉด์ด๊ณ  ํ•œ ์นธ์— ๋‚˜์ดํŠธ๊ฐ€ ์œ„์น˜ํ•ด์žˆ์„ ๋•Œ ๋‚˜์ดํŠธ๊ฐ€ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

  • ๋‚˜์ดํŠธ๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ์ด๋™ ๊ฐ€๋Šฅ:
  1. ์ˆ˜ํ‰์œผ๋กœ ๋‘ ์นธ ์ด๋™ ํ›„ ์ˆ˜์ง์œผ๋กœ ํ•œ ์นธ ์ด๋™
  2. ์ˆ˜์ง์œผ๋กœ ๋‘ ์นธ ์ด๋™ ํ›„ ์ˆ˜ํ‰์œผ๋กœ ํ•œ ์นธ ์ด๋™
  • ์ •์› ์œ„์น˜๋Š” ํ–‰ 1~8, ์—ด a~h๋กœ ํ‘œํ˜„

ํ•ด๊ฒฐ๋ฒ•

๋‚˜์ดํŠธ์˜ ์ด๋™๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ•˜๋‚˜์”ฉ ํ™•์ธ

์ •๋‹น์„ฑ ๋ถ„์„

๋‚˜์ดํŠธ๋Š” ์ด๋™๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๊ฐ€ 8๊ฐ€์ง€๋‹ค. ์ด 8๊ฐ€์ง€ ๊ฒฝ๋กœ ์ค‘ ์ •์›์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋Š” ๊ฒฝ๋กœ๋งŒ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค
๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด 8๊ฐ€์ง€ ๋ฐฉํ–ฅ์— ๋Œ€ํ•œ ๋ฐฉํ–ฅ ๋ฒกํ„ฐ ์ •์˜

๋‹ต์•ˆ ์˜ˆ์‹œ

  • ord() - ๋ฌธ์ž๋ฅผ ์•„์Šคํ‚ค์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜
inputdata = input()
inputrow = int(inputdata[1])
inputcol = ord(inputdata[0]) - ord('a') + 1

directions = [(2, 1), (2, -1), (-2, 1), (-2, -1), (1, 2), (1, -2), (-1, 2), (-1, -2)]

count = 0
for dir in directions:
	newrow = inputrow + dir[1]
	newcol = inputcol + dir[0]
	if 1 <= newrow <= 8 and 1 <= newcol <= 8:
		count += 1

print(count)

[๋ฌธ์ œ] ๋ฌธ์ž์—ด ์žฌ์ •๋ ฌ

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

ํ•ด๊ฒฐ๋ฒ•

๋ฌธ์ž์—ด์€ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•ด์„œ ์ •๋ ฌํ•˜๊ณ  ์ˆซ์ž๋Š” ๋”ฐ๋กœ ํ•ฉ์„ ๊ณ„์‚ฐํ•ด ๋’ค์— ๋ถ™์—ฌ ์ถœ๋ ฅ

๋‹ต์•ˆ ์˜ˆ์‹œ

data = input()
string = []
number = 0

for char in data:
	if char.isalpha():
		string.append(char)
	else:
		number += int(char)
string.sort()

if number != 0:
	string.append(str(number))	
	# strํ˜•์œผ๋กœ ์•ˆ ๋ฐ”๊พธ๋ฉด ์•„๋ž˜ join์„ ์“ธ ์ˆ˜ ์—†๋‹ค
print(''.join(string))
# ''์„ ๋„์–ด์“ฐ๊ธฐ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์ŠคํŠธ ๋‚ด ์›์†Œ๋“ค์„ ์ž‡๋Š”๋‹ค
profile
๊ฐœ๋ฐœ๊ธฐ๋ก
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€