Skip to content

Commit c63552d

Browse files
authored
Merge branch 'Mingguriguri:main' into main
2 parents f60b694 + d0b868a commit c63552d

6 files changed

+158
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
m = int(input()) # ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ˆ˜
5+
s = 0 # ๋น„์–ด์žˆ๋Š” ์ดˆ๊ธฐ ๊ณต์ง‘ํ•ฉ S
6+
for _ in range(m):
7+
command = list(map(str, input().strip().split())) # ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ -> all๊ณผ empty๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ
8+
# ๋”ฐ๋ผ์„œ command[0]: ์—ฐ์‚ฐ๋‚ด์šฉ command[1]: ์š”์†Œ
9+
if command[0] == 'add': # ์›์†Œ ์ถ”๊ฐ€ (or)
10+
s |= (1 << int(command[1]))
11+
elif command[0] == 'remove': # ์›์†Œ ์‚ญ์ œ (not + and)
12+
s &= ~(1 << int(command[1]))
13+
elif command[0] == 'check': # ์›์†Œ ์ฒดํฌ
14+
if s & (1<< int(command[1])):
15+
print(1)
16+
else:
17+
print(0)
18+
elif command[0] == 'toggle': # ์›์†Œ ํ† ๊ธ€ (xor)
19+
s ^= (1 << int(command[1]))
20+
elif command[0] == 'all': # ์›์†Œ ์ฑ„์šฐ๊ธฐ
21+
s = (1 << 21) - 1
22+
elif command[0] == 'empty': #์›์†Œ ๋น„์šฐ๊ธฐ
23+
s = 0
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import sys
2+
sys.setrecursionlimit(10000) #์žฌ๊ท€ limit ์„ค์ •(ํŒŒ์ด์ฌ ์ตœ๋Œ€ ๊นŠ์ด ๋Š˜๋ฆฌ๋Š” ๋ชจ๋“ˆ ์ด์šฉ)
3+
4+
input = sys.stdin.readline
5+
6+
# 1. DFS ํ•จ์ˆ˜ ์ •์˜
7+
def dfs(x, y):
8+
# x์™€ y์˜ ์œ„์น˜๊ฐ€ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜, ์–‘๋ฐฐ์ถ”๋ฆฌ์ŠคํŠธ์— ์—†๋Š” ์œ„์น˜๋ผ๋ฉด ๊ทธ๋ƒฅ ๋ฐ˜ํ™˜
9+
if x < 0 or x >= M or y < 0 or y >= N or cabbage_filed[x][y] == 0:
10+
return
11+
12+
# ํ˜„์žฌ ์œ„์น˜ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
13+
cabbage_filed[x][y] = 0 # ๋ฐฐ์ถ” ์žˆ๋˜ ์ž๋ฆฌ 1->0์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ค‘๋ณต ๋ฐฉ์ง€
14+
15+
# ์ƒํ•˜์ขŒ์šฐ ์œ„์น˜ ํƒ์ƒ‰
16+
dfs(x+1, y) # ์˜ค๋ฅธ์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
17+
dfs(x-1, y) # ์™ผ์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
18+
dfs(x, y+1) # ์œ„์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
19+
dfs(x, y-1) # ์•„๋ž˜์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
20+
21+
22+
T = int(input()) # ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ์ˆ˜
23+
# 2. ์ž…๋ ฅ ์„ค์ • ๋ฐ ์ดˆ๊ธฐํ™”
24+
for _ in range(T):
25+
M, N, K = map(int, input().strip().split()) # M: ๊ฐ€๋กœ๊ธธ์ด, N: ์„ธ๋กœ๊ธธ์ด, K: ๋ฐฐ์ถ”๊ฐœ์ˆ˜
26+
cabbage_filed = [[0] * N for _ in range(M)] # ์–‘๋ฐฐ์ถ”๋ฐญ ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™”
27+
28+
# 3. ๋ฐฐ์ถ” ์œ„์น˜ ์„ค์ •
29+
for _ in range(K):
30+
x, y = map(int, input().strip().split())
31+
cabbage_filed[x][y] = 1 # ์ž…๋ ฅ๋ฐ›์€ x, y ์œ„์น˜์— ๋ฐฐ์ถ”๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 1๋กœ ๋ณ€๊ฒฝ
32+
33+
worms = 0 # ์ง€๋ ์ด ํ•„์š” ์ˆ˜ ์ดˆ๊ธฐํ™”
34+
35+
# 4. DFS๋กœ ์—ฐ๊ฒฐ๋œ ๋ฐฐ์ถ” ํƒ์ƒ‰ & ์ง€๋ ์ด ์ˆ˜ ๊ณ„์‚ฐ
36+
for i in range(M):
37+
for j in range(N):
38+
if cabbage_filed[i][j] == 1: # ๋ฐฐ์ถ”๊ฐ€ ์‹ฌ์–ด์ ธ ์žˆ๊ณ  ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
39+
worms += 1 # ์ง€๋ ์ด ์ˆ˜ +1
40+
dfs(i, j)# dfs ํ˜ธ์ถœํ•˜์—ฌ ๋ชจ๋“  ์—ฐ๊ฒฐ๋œ ๋ฐฐ์ถ” ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
41+
42+
43+
# 5. ๊ฒฐ๊ณผ ์ถœ๋ ฅ
44+
print(worms) # ํ˜„์žฌ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์— ๋Œ€ํ•œ ์ง€๋ ์ด ์ˆ˜ ์ถœ๋ ฅ
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import sys
2+
sys.setrecursionlimit(10000) #์žฌ๊ท€ limit ์„ค์ •(ํŒŒ์ด์ฌ ์ตœ๋Œ€ ๊นŠ์ด ๋Š˜๋ฆฌ๋Š” ๋ชจ๋“ˆ ์ด์šฉ)
3+
4+
input = sys.stdin.readline
5+
6+
# 1. DFS ํ•จ์ˆ˜ ์ •์˜
7+
def dfs(x, y):
8+
# x์™€ y์˜ ์œ„์น˜๊ฐ€ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜, ์–‘๋ฐฐ์ถ”๋ฆฌ์ŠคํŠธ์— ์—†๋Š” ์œ„์น˜๋ผ๋ฉด ๊ทธ๋ƒฅ ๋ฐ˜ํ™˜
9+
if x < 0 or x >= M or y < 0 or y >= N or cabbage_filed[x][y] == 0:
10+
return
11+
12+
# ํ˜„์žฌ ์œ„์น˜ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
13+
cabbage_filed[x][y] = 0 # ๋ฐฐ์ถ” ์žˆ๋˜ ์ž๋ฆฌ 1->0์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ค‘๋ณต ๋ฐฉ์ง€
14+
15+
# ์ƒํ•˜์ขŒ์šฐ ์œ„์น˜ ํƒ์ƒ‰
16+
dfs(x+1, y) # ์˜ค๋ฅธ์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
17+
dfs(x-1, y) # ์™ผ์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
18+
dfs(x, y+1) # ์œ„์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
19+
dfs(x, y-1) # ์•„๋ž˜์ชฝ ๋ฐฐ์ถ” ํƒ์ƒ‰
20+
21+
22+
T = int(input()) # ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ์ˆ˜
23+
# 2. ์ž…๋ ฅ ์„ค์ • ๋ฐ ์ดˆ๊ธฐํ™”
24+
for _ in range(T):
25+
M, N, K = map(int, input().strip().split()) # M: ๊ฐ€๋กœ๊ธธ์ด, N: ์„ธ๋กœ๊ธธ์ด, K: ๋ฐฐ์ถ”๊ฐœ์ˆ˜
26+
cabbage_filed = [[0] * N for _ in range(M)] # ์–‘๋ฐฐ์ถ”๋ฐญ ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™”
27+
28+
# 3. ๋ฐฐ์ถ” ์œ„์น˜ ์„ค์ •
29+
for _ in range(K):
30+
x, y = map(int, input().strip().split())
31+
cabbage_filed[x][y] = 1 # ์ž…๋ ฅ๋ฐ›์€ x, y ์œ„์น˜์— ๋ฐฐ์ถ”๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 1๋กœ ๋ณ€๊ฒฝ
32+
33+
worms = 0 # ์ง€๋ ์ด ํ•„์š” ์ˆ˜ ์ดˆ๊ธฐํ™”
34+
35+
# 4. DFS๋กœ ์—ฐ๊ฒฐ๋œ ๋ฐฐ์ถ” ํƒ์ƒ‰ & ์ง€๋ ์ด ์ˆ˜ ๊ณ„์‚ฐ
36+
for i in range(M):
37+
for j in range(N):
38+
if cabbage_filed[i][j] == 1: # ๋ฐฐ์ถ”๊ฐ€ ์‹ฌ์–ด์ ธ ์žˆ๊ณ  ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
39+
worms += 1 # ์ง€๋ ์ด ์ˆ˜ +1
40+
dfs(i, j)# dfs ํ˜ธ์ถœํ•˜์—ฌ ๋ชจ๋“  ์—ฐ๊ฒฐ๋œ ๋ฐฐ์ถ” ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
41+
42+
43+
# 5. ๊ฒฐ๊ณผ ์ถœ๋ ฅ
44+
print(worms) # ํ˜„์žฌ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์— ๋Œ€ํ•œ ์ง€๋ ์ด ์ˆ˜ ์ถœ๋ ฅ
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
nums = input()
2+
nums_list = nums.split('-') # 1. ๋จผ์ € -๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.
3+
4+
for i, n in enumerate(nums_list):
5+
num_plus = list(map(int, n.split('+'))) # 2. +๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ ํ›„, ๋ฆฌ์ŠคํŠธ์— int๋กœ ๋ฐ”๊ฟ” ์ €์žฅํ•œ๋‹ค.
6+
# ์ €์žฅํ˜•ํƒœ: [55, [50, 50]]
7+
nums_list[i] = sum(num_plus) # 3. ๋ฐ”๊พผ intํ˜•์„ ๋”ํ•œ ๊ฐ’์„ ์›๋ž˜์˜ ์‹์ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.
8+
9+
result = nums_list[0]
10+
for i in range(1, len(nums_list)): # 4. ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์„ - ์—ฐ์‚ฐํ•œ๋‹ค.
11+
result -= nums_list[i]
12+
13+
print(result)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
N, M = map(int, input().strip().split())
5+
nums = list(map(int, input().strip().split()))
6+
prefix = [0] * (N+1)
7+
8+
# ๋ˆ„์ ํ•ฉ ๊ตฌํ•˜๊ธฐ
9+
for i in range(len(nums)):
10+
prefix[i+1] = nums[i] + prefix[i]
11+
12+
# ๊ตฌ๊ฐ„ํ•ฉ ๊ตฌํ•˜๊ธฐ (๋ˆ„์ ํ•ฉ - ๊ตฌ๊ฐ„)
13+
for _ in range(M):
14+
start, end = map(int, input().strip().split())
15+
result = prefix[end] - prefix[start-1] # ๋ˆ„์ 
16+
print(result)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import sys
2+
input = sys.stdin.readline
3+
# N: ์˜จ๋„๋ฅผ ์ธก์ •ํ•œ ์ „์ฒด ๋‚ ์งœ ์ˆ˜ / K: ์—ฐ์†์ ์ธ ๋‚ ์งœ์˜ ์ˆ˜
4+
N, K = map(int, input().strip().split())
5+
temp = list(map(int, input().strip().split())) # ์˜จ๋„ ๋ฆฌ์ŠคํŠธ
6+
prefix_sum = [0] * (N+1) # ๋ˆ„์ ํ•ฉ ๋ฆฌ์ŠคํŠธ
7+
section = N - K + 1 # ๊ตฌ๊ฐ„ํ•ฉ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ ํฌ๊ธฐ
8+
range_sum = [0] * section # ๊ตฌ๊ฐ„ํ•ฉ ๋ฆฌ์ŠคํŠธ
9+
10+
# ๋ˆ„์ ํ•ฉ ๊ตฌํ•˜๊ธฐ
11+
for i in range(len(temp)):
12+
prefix_sum[i+1] = temp[i] + prefix_sum[i]
13+
14+
# ๊ตฌ๊ฐ„ํ•ฉ ๊ตฌํ•˜๊ธฐ
15+
for i in range(K, section+K):
16+
range_sum[i-K] = prefix_sum[i] - prefix_sum[i-K]
17+
18+
print(max(range_sum)) # K์ผ์˜ ์˜จ๋„์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š” ๊ฐ’

0 commit comments

Comments
ย (0)