Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions kojungbeom/Programmers/Level2/땅따먹기.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
def solution(land):

for i in range(1,len(land)):
for j in range(len(land[0])):
# j, 즉 이전 row에서 선택한 열을 제외한 row를 생성
# 한 row의 모든 열에 대해서 똑같은 작업을 진행
row = land[i-1][:j] + land[i-1][j+1:]
land[i][j] += max(row)

return max(land[len(land)-1])
32 changes: 32 additions & 0 deletions kojungbeom/Programmers/Level2/방문 길이.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""
#Q1: 좌표평면의 경계를 넘어서는 커멘드도 존재하나요?
-> 이 경우 예외처리가 필요하기 떄문..!
My solution:
일단 이 문제는 커멘드대로 좌표평면상에서 움직이도록
만들면되는 간단한 문제로 보이는데..
이때 "처음 걸어본 길의 길이"를 구하는 것이기 때문에
처음 간건지 아닌지를 판별할 무언가가 필요하다.
이를 위한 조건문과 메모리 역할을 할 변수를 만들어서
걸어본 길의 길이를 카운팅하는 방식으로 풀 수 있을것 같다.
그래서 나는 먼저 좌표평면을 나타낼수있는 2차원 배열을 만들것이다.
이 배열의 성분은 0과 1로 표시되는데, 0은 걸어본 길이 아닐 경우이고
1은 걸어본길일 경우에 해당한다. -> 이 부분은 잘못 생각함..
결국 커멘드에 따라 2차원배열의 row와 col의 성분을 검사하면서 카운팅하는
방식으로 코드를 짜보려고한다.
"""
def solution(dirs):
answer = 0
ddict = {"U": (1, 0), "D":(-1,0), "R":(0,1), "L":(0,-1)}
seen = set()
row, col = 0+5, 0+5

for d in dirs:
r, c = ddict[d]
new_row = row + r
new_col = col + c
if 0<=new_row<=10 and 0<=new_col<=10:
seen.add((row, col, new_row, new_col))
seen.add((new_row, new_col, row, col))
row = new_row
col = new_col
return len(seen) // 2
10 changes: 10 additions & 0 deletions kojungbeom/Programmers/Level3/정수 삼각형.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
def solution(triangle):
answer = 0
t_length = len(triangle)-1

for h in range(t_length, 0, -1):
for i in range(len(triangle[h])-1):
value = max(triangle[h][i], triangle[h][i+1])
triangle[h-1][i] += value

return triangle[0][0]
13 changes: 13 additions & 0 deletions kojungbeom/Programmers/Level3/최고의 집합.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
def solution(n, s):
if n > s:
return [-1]
answer = [1] * n

a, b = divmod(s, n)
answer = [a]* n
for i in range(b):
answer[i % n] += 1

#print(answer)
answer.sort()
return answer
1 change: 1 addition & 0 deletions kojungbeom/Programmers/README
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
안녕하세요. 저에요.