일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 윤성우 열혈자료구조
- s
- JSON
- list 컬렉션
- buffer
- C 언어 코딩 도장
- 이것이 자바다
- C programming
- Graph
- 알기쉬운 알고리즘
- Selection Sorting
- R
- Algorithm
- coding test
- Stack
- 이스케이프 문자
- 메모리구조
- 혼자 공부하는 C언어
- insertion sort
- datastructure
- Serialization
- stream
- 윤성우의 열혈 자료구조
- Today
- Total
목록Problem Solving/Programmers (19)
Engineering Note
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42579 해설 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 만드는 프로그램을 완성하는 것이다. 입력 값으로 노래의 장르를 나타내는 문자열 배열 genres, 노래별 재생횟수를 나타내는 정수 배열 plays가 주어진다. 이때 노래마다 고유번호가 존재하고 그 고유 번호를 i 라고 했을 때, genres[i]는 i 노래의 장르를 나타내고 plays[i]는 i 노래의 재생횟수를 나타낸다. 문제의 노래 수록 기준은 다음과 간다. 1. 속한 노래가 많이 재생된 장르를 먼저 수록한다. -> 이 기준에 따라서 장르별 총 재생횟수를 구하고 정렬해야 함을 알 수 있다. 2. 장르 내에서 많이 재생..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42577 해설 한 번호가 다른 번호의 접두어인 경우를 찾는 것이다. 그런데 구하는 방법이 한 번호가 다시 다른 번호의 접두어인지 확인하는 방법을 역으로 구한다. 역으로라는 의미는 접두어를 구하고 이 구한 접두어가 phone_book에 존재하는 지를 확인하는 것이다. 이때 한 번호의 접두어는 어려가지 경우가 있다. 한 번호의 접두어를 하나씩 구하고, 이렇게 구한 접두어가 기존 번호 리스트에 있는지 확인하면 된다. 이때 확인하는 방법을 구한 접두어 번호마다 다시 phone_book list에서 확인하면 O(n)의 시간복잡도를 갖고 n이 최대 1,000,000이므로 효율성이 좋지 않다. 예를 들면 "11..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/87946 해설 유저가 던전을 탐험한다. 각 유저는 "현재 피로도"를 갖고 있고, 던전에는 탐험을 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있다. 유저가 던전을 탐험 하기 위해서는 "현재 피로도"는 던전의 "최소 필요 피로도"보다 커야 한다. 그리고 던전 탐험 후 "현재 피로도"는 탐험 전 "현재 피로도"에서 "소모 피로도"만큼 감소한다. 입력값은 현재피로도 k, 각 던전별 "최소 필요 피로도", "소모 피로도"가 담긴 2차원 배열 dungeons가 주어진다. 예를 들어 k=80, dungeons = [[80,20],[50,40],[30,10]]가 주어 질..
문제 https://programmers.co.kr/learn/courses/30/lessons/42840 문제해결방법 학생 3명이 모두 각각 패턴을 가지고 문제를 찍을 때 숫자들의 특징을 이용하면 쉽게 문제를 풀 수 있다. 1 2 3 4 5 6 7 8 9 10 5 4 3 2 1 5 1 2 4 1 2 1 2 3 2 4 2 5 2 1 위의 표의 첫 줄은 문제의 번호를 나타내고 두 번째줄은 각 문제의 정답 세 번째 줄은 2번 학생의 정답 패턴을 나타낸 것이다. [2, 1, 2, 3, 2, 4, 2, 5] 8개의 숫자들을 가지고 반복하는 구조인데 이때 그러면 9번째는 1번 숫자와 갖고 10번째는 2번 숫자와 같다. 이러한 규칙을 활용할 수 있는것이 나머지연산이다. 1과 9는 8로 나누었을 때 나머지가 1로 같..

문제 코드 def solution(arr, divisor): answer = [] for elem in arr: if elem % divisor == 0: answer.append(elem) if len(answer) == 0: answer.append(-1) answer.sort() return answer 문제해결방법

it 취업을 위한 알고리즘 문제 풀이 문제 코드 def tenTobinary(number): binary = [] temp = number while temp: binary.insert(0, temp % 2) temp //= 2 res = "".join(map(str,binary)) return res def solution(n, arr1, arr2): answer = [] for i in range(len(arr1)): binary1 = tenTobinary(arr1[i]) binary2 = tenTobinary(arr2[i]) while len(binary1) < n : binary1 = "0" + binary1 while len(binary2) < n : binary2 = "0" + binary2 ..

https://programmers.co.kr/learn/courses/30/lessons/43162 def DFS(curVertex,depth): if depth == n: return visited[curVertex] = True for nextVertex in range(n): if visited[nextVertex] == True: continue if curVertex == nextVertex: continue if computers[curVertex][nextVertex] == 1: DFS(nextVertex,depth+1) answer = 0 for vertex in range(n): if visited[vertex] == False: answer +=1 DFS(vertex,0) return..

it 취업을 위한 알고리즘 문제 풀이 문제 https://programmers.co.kr/learn/courses/30/lessons/43163 [ 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr ](https://programmers.co.kr/learn/courses/30/lessons/43163) 코드 #https://programmers.co.kr/learn/courses/30/lessons/43163 from collections import deque, d..