본문 바로가기

분류 전체보기

(254)
PG) 야근지수 -lv3 https://school.programmers.co.kr/learn/courses/30/lessons/12927 import heapqdef solution(n, works): if n >= sum(works): return 0 works = [-i for i in works] heapq.heapify(works) for _ in range(n): mx = heapq.heappop(works) mx += 1 heapq.heappush(works,mx) return sum([i ** 2 for i in works]) 제곱근의 합 중 가장 작은 수를 구하는 문제이다.이렇게 ..
PG) 네트워크 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr from collections import dequedef solution(n, computers):# 아이디어# 큐를 이용한다# 배열 하나를 만들어(arr) 그 배열에 이어져있는 관계를 저장# 어차피 서로 연결되어 있으니 둘 모두를 저장할 필요 없이 한 쪽만 저장하면 됨# visit으로 방문여부 체크# visit을 돌며 False은 값 찾아서 answer += 1# bsf이후에 False라면..
프로그래머스) 정수 삼각형 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  def solution(triangle): # 아이디어 # dp를 이용 # dp는 triangle의 맨 마지막에서부터 시작 -> bottom-up # 2번 반복문을 돌며 d[i-1][j]와 dp[i-1][j-1]을 업데이트 # 이때 j값을 검증하여 dp업데이트 실행 dp = [[0] * len(triangle) for _ in range(len(triangle))] ..
JS) 무한 캔버스(Infinity Canvas)의 원리와 구현 들어가며...디자인에 관련된 일에 종사하는 사람이라면 "피그마" 앱을 익히 들었을 것입니다.디자이너 뿐만이 아니라 프론트엔드, 백엔드 등의 기타 개발자, 혹은 피그마 앱을 사용하는 팀 또는 회사에서 이를 사용하거나 본 적이 있는 사람이 대부분일 것입니다. 피그마는 매우 유용한 툴입니다. "dev"모드라는 유로 구독을 하면 디자이너가 원하는 부분의 색상이나 디자인을 그대로 css 코드로 변환해줍니다. (어도비는 피그마를 무려 28조원에 인수했습니다.) 저희 또한 피그마 같은 회사를 창업해 28조원을 벌어보려합니다.따라서 우리 팀은 피그마 앱의 카피앱을 만드려합니다.앱의 가장 중요한 부분은 무엇이 있을까요? 저는 딱 두개를 뽑았습니다.webGL을 이용한 GPU의 사용과 무한 캔버스의 구현입니다.하지만 자바스..
BOJ)괄호 추가하기 3 https://www.acmicpc.net/problem/16639 시간복잡도를 확인하고 브루트포스로 해결하려했지만 실패했다.결국 다른 사람의 코드를 참고하여 풀었고, 이해하는데 조금 애를 먹었다. N = int(input())E = input()M = N // 2 + 1max_dp = [[-10 ** 9] * M for _ in range(M)]min_dp = [[10 ** 9] * M for _ in range(M)]for i in range(M): max_dp[i][i] = min_dp[i][i] = int(E[i * 2])for k in range(1,M): for i in range(M - k): j = i + k for x in range(i, j): ..
BOJ) MooTube https://www.acmicpc.net/problem/15591  정말 기본적인 BFS문제였다.기초에 충실하게 bfs를 작성하고 제출을 눌렀으나 시간초과가 발생했다.import mathfrom collections import dequeimport sysinput = sys.stdin.readlineINF = math.infn, q = map(int, input().split())arr = [[] for _ in range(n+1)]for _ in range(n-1): a, b, c = map(int, input().split()) arr[a].append([b, c]) arr[b].append([a, c])for _ in range(q): k, start = map(int, i..
백준) 합분해 - python https://www.acmicpc.net/problem/2225  이전의 동전 1과 비슷한 문제이다. 우선 2개의 수로 6을 만드는 경우의 수는 어떻게 될까?이를 생각하기에 앞서 정수 1개로 6을 만드는 경우를 생각해보자  당연하게도 0원부터 6원까지의 경우의 수는 모두 1개가 된다. 그럼 동전 2개로는 어떨까3개 또한 다음과 같다.  규칙성이 보이기 시작하는 것이 정상이다. 이런 규칙성은 과연 합당할까? 좀 더 자세히 보자단순 정수로만 표기하면 다음과 같이 규칙성을 찾을 수 없겠지만, 이를 이진법으로 바꾸면 간단하다.  단순히 이전 결과 값에 0 또는 1을 붙임으로써 해당 k 개로 정수 n을 만들 수 있는 경우의 수가 만들어진다 이를 코드로 변환하면 다음과 같다.from itertools import..
BOJ) 동전 1. Python https://www.acmicpc.net/problem/2293    입력 예제로 들어온 값으로 예를 들어보자3 10125 1,2,5의 동전으로 10을 만들 수 있는 경우의 수는 몇 개인가?우리가 생각해보아야할 것은 1의 동전으로 몇 개를 만들 수 있는가.1과 2의 동전으로 몇 개를 만들 수 있는가1과 2와 5의 동전으로 몇 개를 만들 수 있는가여느 dp문제와 헷갈린 점이2원짜리 동전은 1원짜리 동전으로 나눌 수 있으니 이를 이용해 dp를 작성하면 된다 생각했다.하지만 이는 문제를 잘못 쪼갠 것이다.  1원으로 k원을 만들 수 있는 경우의 수,1과 2원으로 k원을 만들 수 있는 경우의 수, 1과 2와 5원으로 k원을 만들 수 있는 경우의 수이런 작은 문제들로 쪼개야한다. 우선 1원으로 0원부터 k원(1..