본문 바로가기

분류 전체보기

(314)
[ 프로그래머스 / 파이썬 ] 야근지수 보호되어 있는 글입니다.
[ Programmers / 파이썬 ] 정수 삼각형 Dynamic Programming 풀이 1. (실패, 풀이 소요 시간 15분) def solution(triangle): answer = 0 h = len(triangle) dp = [[0]*i for i in range(1,h+1)] dp[0] = triangle[0] for i in range(1, h): for j in range(i): if j == 0: dp[i][j] = dp[i-1][j] + triangle[i][j] elif j == h: dp[i][j] = dp[i-1][j-1] + triangle[i][j] else: dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]) + triangle[i][j] answer = max(dp[h-1]) return answer ..
[ BOJ / 파이썬 ] 2146. 다리 만들기 와아.. BFS 이제 뚫렸나보다.. 행복해.. 재밌어.. 풀이 소요 시간 30분. 통과 # 2:40 from collections import deque n = int(input()) def make_continent(i, j, board, visited, index): n = len(board) dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] q = deque([(i, j)]) visited[i][j] = True board[i][j] = index while q: x, y = q.popleft() for k in range(4): nx = x + dx[k] ny = y + dy[k] if 0
[ BOJ / 파이썬 ] 2573. 빙산 오예 : ) 간만에 한 번에 뚫었다. from collections import deque dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] def get_iceberg_num(board): n, m = len(board), len(board[0]) count = 0 visited = [[False] * m for _ in range(n)] for i in range(n): for j in range(m): if board[i][j] != 0 and not visited[i][j]: count += 1 q = deque([(i, j)]) visited[i][j] = True while q: x, y = q.popleft() for k in range(4): nx = x + dx[k] n..
[ BOJ / 파이썬 ] 9466. 텀 프로젝트 보호되어 있는 글입니다.
[ BOJ / 파이썬 ] 11559. Puyo Puyo 40분 걸려서 풀었는데.. 18%인가에서 '틀렸습니다.' .. 😥😥 확실히 시뮬레이션 유형, 그니까 코드 구현력이 약하다.. 많이 풀면서 속도와 정확도 올리는 것에 관심 가져야겠다. 1차 제출. 실패 코드. 풀이시간 40분 import sys input = sys.stdin.readline from collections import deque dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] def bfs(a, b, field): visited = [[False]*6 for _ in range(12)] q = deque([(a, b)]) visited[a][b] = True puyos = [] while q: x, y = q.popleft() puyos.append((x, y)) for..
[ BOJ / 파이썬 ] 6603. 로또 백트래킹으로 구현했다. 음.. N과M시리즈를 다시 풀어야겠다. 해당 문제에서 시간이 걸리면 안되는데.. 음.. 순간 순열 구현 아이디어가 안 떠올랐다. 해결법은 .. 오름차순인걸 이용해서 새로 넣는 값이 이미 저장한 배열의 마지막 값보다 큰 경우에만 들어가게끔 해줬다. import sys input = sys.stdin.readline def make_nums(count, k, data, lotto): global visited if count == 6: print(*lotto) return for i in range(k): if data[i] not in lotto: if not lotto or (lotto and lotto[-1] < data[i]): lotto.append(data[i]) make_..
[ BOJ / 파이썬 ] 6593. 상범빌딩 아싸 ~ 3차원 BFS ..! 아 인덱스 때문에 머리 꼬여서 고생했는데 하루 자고 풀어보니까 풀린다 ㅎㅎㅎㅎㅎㅎ 행복해 ~ 재밌어 코테 ㅎㅎㅎㅎ 그 .. 개인적으로 3차원에서 z 인덱스를 맨 앞으로 뺀다는 부분에서 헷갈리지 말아야 한다. import sys input = sys.stdin.readline from collections import deque # 동 서 남 북 위 아래 dx = [-1, 0, 1, 0, 0, 0] dy = [0, 1, 0, -1, 0, 0] dz = [0, 0, 0, 0, -1, 1] def bfs(): q = deque([(sz, sx, sy)]) building[sz][sx][sy] = 0 while q: z, x, y = q.popleft() for i in range..
2023년 2월 둘째 주, 요즘IT 추천 기사들을 읽고 .. IT TIPS - 구글에 도전장 내민 AI 검색엔진, 'You.com' - 성장하고 싶은 주니어 개발자를 위한 추천 도서 5권 - 소프트웨어 설계 20년 해보고 깨달은 ‘좋은 설계’의 조건 Design TIPS - 우버(Uber) 피치덱, 이게 최선입니까? - 사용자를 화나게 만드는 ‘UX 라이팅’의 함정 Business TIPS - 컬리 멤버십, 3PL, 컬리로그... 컬리의 다음 동력은 어디서 나올까? - 인공지능 시대에 대처하는 디자이너의 자세 구글에 도전장 내민 AI 검색엔진, 'You.com' [ 기사 본문 ] AI기술과 웹을 엮은 검색엔진 .. 내가 배운, 내가 관심 있는, 내가 더 깊게 배우고 싶은 모든 내용의 총집합인 사이트다. 여기 취업 준비해야하나 싶을 정도로 나에게 타겟팅된 주제였다...
Semaphore ? Process 동기화의 방안 ! Semaphore 정의 두 개의 P연산과 V연산으로, CPU에서 병렬 처리 시에 Process들간 실행 시간 순서를 결정하는 연산 방식을 뜻합니다. 임계 영역을 사이에 두고 점유 여부를 통해 실행 중인 Process의 유무를 따질 수 있게 하여 '상호 배제 기법'을 구현합니다. P연산과 V연산 실행 순서는 대충 프로세스A의 P연산 -> 프로세스A의 V연산 -> 프로세스B의 P연산 -> 프로세스B의 V연산 순서로 진행됩니다. Semaphore의 유형 이진 세마포어(Binary Semaphore) 와 계수 세마포어(Counting Semaphore)로 구분됩니다. Binary Semaphore는 Semaphore변수가 0 또는 1 값만 갖습니다. 반면, Counting Semaphore는 Semaphore변..