일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- docker-compose
- 우아한테크코스 2차
- Spring
- javascript
- docker
- MySQL server on 'db' (115)
- DB
- METACLASS
- 재귀함수가 뭔가요
- github skyline
- 우아한 테크코스 2차 합격
- 프로그래머스
- python
- classproperty
- classmethod
- AWS S3
- Django
- 갓재석
- depends_on
- EC2
- github
- OperationalError
- S3
- AWS
- 2차 코딩테스트
- TypeError: 'property' object is not iterable
- 코딩테스트
- depends
- springboot 3.0.0
- python all testcode
목록프로그래머스 (10)
hanbin.dev
문제 풀이 코드 def solution(board, moves): answer = 0 result_stack = [] for move in moves: for i, column in enumerate(board): if column[move - 1] != 0: if len(result_stack) > 0: if (recent := result_stack.pop()) == column[move - 1]: #1 answer += 2 board[i][move - 1] = 0 break else: result_stack.append(recent) result_stack.append(column[move - 1]) board[i][move - 1] = 0 break return answer #1 왈러스 연산자를 ..
문제 풀이 코드 def solution(a, b): return sum([x*y for x,y in zip(a, b)]) 졸리고 머리아파서 그냥 1단계 풀었다.
아이디어 DFS 문제이다. 예를 들어numbers : [ 1, 1, 1 ],target : 1이 들어왔다면 아래와 같은 이진 트리 구조를 갖는다. 노드의 종점에서 target 값과 비교해 같다면 answer에 +1을 해주는 것이다. 문제 풀이 코드 def solution(numbers, target): answer = 0 def dfs(current_total, current_index, sign): # dfs(0,0,1) nonlocal answer current_total += numbers[current_index] * sign if len(numbers)
아이디어 def solution(phone_book): for a in phone_book: for b in phone_book: if a.startswith(b) and a != b: return False return True그냥 문제 보자마자 이 코드가 생각났다. 물론 정확성 테스트는 그냥 통과하는데 효율성 테스트에서 막힌다. 다른 방법을 생각해야 했다. 제한 사항을 확인하자. phone_book의 길이가 1,000,000 이하라고 한다. 최대 O(n log n) 으로 풀어야 한다. 문제 풀이 코드 def solution(phone_book): phone_book.sort() # 1 for a,b in zip(phone_book, phone_book[1:]): # 2 if b.startswith(a..
아이디어 대기열의 첫번째가 나머지 보다 크다면 대기열에서 삭제 (인쇄) => 대기열의 첫번째 보다 나머지가 작지 않다면 대기열 맨 뒤로 보냄 하나가 인쇄 될 때 마다 answer += 1 만약 인쇄 된 문서의 순서(i)가 location과 일치한다면 answer return 하나라도 첫번째 보다 크다면 대기열 맨 뒤로 보냄 문제 풀이 코드 def solution(priorities, location): answer = 0 priorities = [(i,value) for i, value in enumerate(priorities)] # 1 while True: move_to_back = False for priority in priorities: # 2 if priorities[0][1] < priori..
문제 풀이 코드 def solution(bridge_length, weight, truck_weights): # sum(다리를 건너는 트럭) + truck_weights[0] 가 weight이 안넘으면 # 다리를 건너는 트럭.append(truck_weights[0]) # 다리를 건너는 트럭[0][1] 을 시간이 지날때 마다 += 1 해줌 # 다리를 건너는 트럭[0][1] 이 weight보다 크거나 같으면 # 다리를 건너는 트럭[0] 을 다리를 지난 트럭으로 이동 # 위 과정을 반복 time = 0 truck_weights = list(map(lambda x : [int(x),0],truck_weights)) #1 current_bridge = [] while True: time += 1 current_..
문제 풀이 코드 function solution(progresses, speeds) { var answer = []; var count = 0; var time = 0; // #1 while(progresses.length > 0){ if ((progresses[0] + speeds[0] * time) >= 100 ){ // #2 count += 1; progresses.splice(0,1); speeds.splice(0,1); time -= 1; // #3 } else { if (count > 0){ answer.push(count); // #4 count = 0; } } time += 1; } answer.push(count); return answer; } FIFO 구조에서 착안해서 코딩했다. #1..
문제 풀이 코드 function solution(n, lost, reserve) { var answer = 0; var duplicatedStudent = [] for (var i = 0; i < lost.length; i++){ if (reserve.includes(lost[i])){ duplicatedStudent.push(lost[i]); // #1 } } for (var student of duplicatedStudent){ var reserveIdx = reserve.indexOf(student); // #2 reserve.splice(reserveIdx,1); var lostIdx = lost.indexOf(student); lost.splice(lostIdx,1); } answer = n -..