일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ubuntu
- Object detection
- 1단계
- docker
- 프로그래머스
- 파이썬
- SWEA
- ssd
- 3단계
- cs
- 2단계
- 머신러닝
- 전산기초
- 그리디
- STL
- Python
- 이것이 코딩테스트다 with 파이썬
- 구현
- MySQL
- 모두를 위한 딥러닝 강좌 시즌1
- 코드수행
- 실전알고리즘
- C++
- AWS
- CS231n
- 백준
- test-helper
- 딥러닝
- 자료구조 및 실습
- pytorch
- Today
- Total
목록TIL/프로그래머스 (104)
곰퓨타의 SW 이야기

해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/12946 코딩테스트 연습 - 하노이의 탑 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대 programmers.co.kr 이러한 아이디어를 바탕으로 작성한 코드는 다음과 같다. def hanoi(n,start,end,aux): if n==1 : return [[start,end]] return hanoi(n-1,start,aux,end)+[[start,end]]+hanoi(n-1,aux,end,start) def solut..

해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 이러한 아이디어를 바탕으로 작성한 코드는 다음과 같다. def solution(genres, plays): answer = [] dict_genre = {} dict_sum = {} for i in range(len(genres)): if genres[i] in dict_genre : dict_genre[genres[i]]...

해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/81302?language=python3 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 이러한 아이디어를 바탕으..
해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr begin 단어를 변환하여 target이 되도록 하는데 최소 경우의 수를 구해야한다고 하였기 때문에 모든 경우의 수를 수행하며 최소 경우의 수를 탐색할 수 있는 길찾기 방법인 dfs/ bfs를 활용해야 겠다고 생각하였다. 1. 한번에 한 개의 알파벳을 변환할 수 있다고 하였기 때문에 ..
해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/67258# 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 이 문제는 처음에 정확성 테스트만 전부 다 통과하고, 효율성 테스트를 해결하는 데에 있어 많은 시간이 소요되었다. 처음에는 리스트 슬라이싱을 활용하려 하였다. 이를 위해 두 개의 포인터 left, right가 필요하다. 1. num_gem에는 보석 종류의 개수가 몇개인지 알기 위해 gems 배열을 집합으로 바꾸어 몇개가 있는지 담았고, left와 right는 몇번째 보석부터..

해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 이 문제는 ,, 딱 보자마자 고등학교 때 배웠던 최단 경로 찾기 방법을 활용하려 하였는데,, 그냥 이 방법을 적용하면 약간의 오류가 난다. 그 이유는 아래와 오른쪽으로만 간다는 점에 유의해야하였기 때문이다! 처음에는 다음과 같은 아이디어로 접근하고자 하였다. 우선 puddle의 배열은 [col,row] 의 형태로 주..
해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 파이썬에서는 heapq를 활용하여 heap으로 배열을 만들어 간단하게 구할 수 있도록 하기 때문에 이를 활용하고자 하였다. (나중에 직접 tree 클래스를 생성하여 만들어본다던가,, 그런 과정도 해봐야 될 것 같다..ㅎㅎ) 우선 I인 경우 들어오는 수를 저장하기 위한 heap을 생성하였다. 이는 heap자료구조 형태로 저장될 수 있도록 하였다. I가 들어와서 값을 삽입해야하는 경우 heapq의 heappush를 활용하였고, D가 들어온 경우, 1이면 최댓값을 제거해야하므로, 최댓값은 heap의 가장 마지..

해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 이러한 아이디어를 바탕으로 작성한 코드는 다음과 같다. def solution(enroll, referral, seller, amount): answer = [] dicts = {} tree_dicts = {} for i in range(len(enroll)): tree_dicts[enroll[i]] = referral[..
해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr 문제를 보고 셔틀 버스 시간이 분 단위로 배차 간격이 주어지기 때문에 모든 시간을 분 단위로 처리하고자 하였다. 따라서 다음과 같은 방식으로 접근하였다. 1. 첫번째 셔틀버스 시간은 9시이다. 따라서 9*60 분부터 ..
해결해야하는 문제는 다음과 같았다. https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 우선 heapq 란, 파이썬에서 제공하는 내장함수로, 정렬된 상태로 데이터를 저장할 수 있도록 해준다. 예를 들어, jobs를 낮은 순으로 정렬되도록 하고 싶은 경우(최소 힙) -> heapq.heapify(jobs)를 통해 heap으로 저장될 수 있도록 한다. heapq를 활용해 push 하고 싶은 경우, heapq.h..