Skip to content

Commit 56d5605

Browse files
authored
Merge branch 'Mingguriguri:main' into main
2 parents 7e8df02 + 0fa3576 commit 56d5605

File tree

39 files changed

+847
-1
lines changed

39 files changed

+847
-1
lines changed

Hongjoo/lv2/모음사전.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from itertools import product
2+
def solution(word):
3+
answer = []
4+
li = ['A', 'E', 'I', 'O', 'U']
5+
for i in range(1,6):
6+
for per in product(li,repeat = i):
7+
answer.append(''.join(per))
8+
answer.sort()
9+
return answer.index(word)+1

Hongjoo/lv2/소수찾기.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from itertools import permutations
2+
def isPrime(n):
3+
if n <= 1 :
4+
return False
5+
6+
end = int(n**(1/2))
7+
for i in range(2,end+1):
8+
if n% i == 0 :
9+
return False
10+
return True
11+
12+
def solution(numbers):
13+
count = 0
14+
15+
arrnum= set() # 중복 방지
16+
#1. 문자열 분리하기 -> 리스트[] 에 넣기
17+
li = list(numbers)
18+
# 분리된 숫자들을 "순열 조합"
19+
for i in range(1,len(numbers)+1) :
20+
p_arr =permutations(li,i)
21+
for perm in p_arr :
22+
num = int("".join(perm))
23+
arrnum.add(num)
24+
print( arrnum)
25+
#prime 확인
26+
for n in arrnum:
27+
if isPrime(n) :
28+
count+= 1
29+
return count
30+

Hongjoo/lv2/카펫.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
def solution(brown, yellow):
2+
sum = brown + yellow
3+
# 1. w,h in [sum의 약수 후보군]
4+
m=2
5+
li = []
6+
while m <= sum :
7+
if sum % m == 0 :
8+
li.append(m)
9+
m += 1
10+
print(li)
11+
# 2. 조건
12+
#2-1 w 가로 >= h 세로
13+
#2-2 갈색 = 2(w-1) + 2(h-1)
14+
#2-3 노란색 = (w-2) * (h-2)
15+
for w in li :
16+
for h in li:
17+
if w>=h and brown == (2*w+2*h-4) and yellow == ((w-2)*(h-2)) :
18+
answer = [w,h]
19+
return answer

Hongjoo/lv2/피로도.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from itertools import permutations
2+
3+
def solution(k, dungeons):
4+
# k : current_tired
5+
#1.순열 -> 입장 순서 모든 경우의 수
6+
dun_len= len(dungeons)
7+
order = permutations(dungeons , dun_len)
8+
answer = 0
9+
#2.입장 가능 여부 확인 => 최대 던전 수 = answer 반환
10+
# k < 최소 필요 피로도 , break
11+
# 최소 필요 피로도 >= 소모 피로도
12+
for permute in order :
13+
hp = k
14+
count = 0
15+
for p in permute :
16+
17+
if hp >= p[0] :
18+
hp -=p[1]
19+
count += 1
20+
if count >answer :
21+
answer = count
22+
23+
return answer

JYP/queuestack.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from collections import deque
2+
import sys
3+
input = sys.stdin.readline
4+
5+
6+
a = int(input())
7+
sec1 = list(map(int, input().split()))
8+
sec2 = list(map(int, input().split()))
9+
b = int(input())
10+
sec3 = list(map(int, input().split()))
11+
12+
13+
queue = deque([])
14+
for i in range(a):
15+
if sec1[i] == 0:
16+
queue.appendleft(sec2[i])
17+
else:
18+
if queue == []:
19+
print(*sec3)
20+
sys.exit()
21+
22+
23+
for i in range(b):
24+
queue.append(sec3[i])
25+
print(queue.popleft(), end = " ")

JYP/팩토리얼 2.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
def fac(n):
2+
if n <= 1: # 종료조건
3+
ans = 1
4+
else:
5+
ans = fac(n-1) * n # 재귀
6+
7+
return ans
8+
9+
print(fac(int(input())))

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ git commit -m "[BOJ] Hello World / 브론즈5 / 1분" -m "https://www.acmicpc.ne
6262
- 왜 이렇게 풀었는지 궁금한 부분
6363
- 또 다른 풀이 방식 제시
6464
- 코드의 일부분에다 코드리뷰를 해도 되고 전체 코드 밑 or PR 하나 밑에다 코멘트 작성으로 리뷰를 해도 됩니다.
65-
65+
66+
코드 리뷰 참고 사이트: https://devlog-wjdrbs96.tistory.com/231
6667
<br />
6768
<br />
6869

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# 다른 풀이
2+
m, n = map(int, input().split())
3+
plate = []
4+
count = []
5+
6+
for _ in range(m):
7+
plate.append(input())
8+
9+
for a in range(m-7):
10+
for b in range(n-7):
11+
W = 0
12+
B = 0
13+
for i in range(a, a+8):
14+
for j in range(b, b+8):
15+
if (i+j) % 2 == 0:
16+
if plate[i][j] != 'W':
17+
W += 1
18+
if plate[i][j] != 'B':
19+
B += 1
20+
else:
21+
if plate[i][j] != 'B':
22+
W += 1
23+
if plate[i][j] != 'W':
24+
B += 1
25+
count.append(min(W, B))
26+
27+
print(min(count))
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
```
2+
# 내 풀이
3+
N, M = map(int, input().split())
4+
nums = list(map(int, input().split()))
5+
6+
sum = 0
7+
8+
for i in range(N):
9+
for j in range(i+1, N):
10+
for k in range(j+1, N):
11+
if nums[i] + nums[j] + nums[k] > M:
12+
continue
13+
else:
14+
sum = max(sum, nums[i] + nums[j] + nums[k])
15+
print(sum)
16+
```
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# 내 풀이
2+
N = int(input())
3+
4+
# 5kg 봉지의 최대 개수
5+
five = N //5
6+
7+
while five >= 0:
8+
# 남은 무게
9+
remain = N - (five * 5)
10+
11+
# 남은 무게가 3의 배수라면
12+
if remain % 3 == 0:
13+
# 3kg 봉지의 최대 개수
14+
three = remain // 3
15+
print(five + three) # 총 봉지 수 출력
16+
break
17+
five -= 1 # 5kg 봉지의 개수를 줄여가며 확인
18+
19+
else:
20+
print(-1) # 모든 경우를 시도해도 나누어 떨어지지 않으면 -1 출력
21+
22+
# 다른 풀이 1
23+
n = int(input())
24+
25+
if n % 5 == 0:
26+
print(n // 5)
27+
else:
28+
p = 0
29+
while n > 0:
30+
n -= 3
31+
p += 1
32+
if n % 5 == 0:
33+
p += n // 5
34+
print(p)
35+
break
36+
elif n == 1 or n == 2:
37+
print(-1)
38+
break
39+
elif n == 0:
40+
print(p)
41+
break
42+
43+
# 다른 풀이 2
44+
num = int(input())
45+
count = 0
46+
47+
while num >= 0:
48+
if num % 5 == 0:
49+
count += int(num // 5)
50+
print(count)
51+
break
52+
53+
num -= 3
54+
count += 1
55+
56+
else:
57+
print(-1)

0 commit comments

Comments
 (0)