일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Stack
- 더 맵게
- 완주하지 못한 선수
- Data Structure
- Programmers
- react
- react-native
- Javascript
- 깊이우선탐색
- 기능개발
- heap
- 가장 큰 수
- hash
- react-native-navigation
- 소수찾기
- 주식
- 넓이우선탐색
- 전화번호 목록
- Virtual DOM
- Algorithm
- sorting
- k번째수
- 다리를 지나는 트럭
- 타겟 넘버
- 이중우선순위큐
- 디스크 컨트롤러
- browser workflow
- Queue
- react-native bind
- Brute Force
- Today
- Total
목록전체 글 (21)
개발 블로그

1. 문제 설명(출처: programmers.co.kr/learn/courses/30/lessons/42577) 2. 문제 풀이 1) 이 문제는 굳이 hash로 풀지 않아도 되지만, hash로 분류되어 있으니 hash로 풀기 위해 빈 dict인 hamp을 생성한다. 2) phone_book의 모든 전화번호에 아래와 같은 명령을 수행한다. 2-1) hmap에 각 전화번호를 key로 아무 value 값을 넣어준다. 3) phone_book의 모든 전화번호에 아래와 같은 명령을 수행한다. 3-1) 모든 전화번호의 접두사 검사를 위해 빈 문자열 temp를 생성한다. 3-2) 각 전화번호의 숫자들에 대해 아래와 같은 명령을 수행한다. 3-2-1) temp에 현재 전화번호의 숫자를 붙인다. 3-2-2) 만약 나 자..

1. 문제 설명(출처: programmers.co.kr/learn/courses/30/lessons/42576) 2. 문제 풀이 1) 문제에서 참여자 명단에는 있지만, 완주자 명단에는 없는 사람을 찾으라고 했다. 단, 동명이인이 있을 수 있다고 했다. 이는 hash(map)를 사용해 (이름, 동명이인의 수)를 만들고, 완주자 명단에 있는 이름의 동명이인의 수를 감소시키면 마지막 남은 사람을 찾을 수 있다. 2) participants를 각각 돌아가면서 아래 명령을 수행한다. 2-1) map에 해당 참가자의 이름이 있는지 확인한다. 2-1-T1) 해당 참가자의 동명이인 수 + 1을 한다. 2-1-F1) 해당 참가자를 (이름, 1) 형태로 map에 저장한다. 3) completions를 각각 돌아가면서 아래..

1. 문제 설명(출처: programmers.co.kr/learn/courses/30/lessons/42747) 2. 문제 풀이 1) 문제에서 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index 라고 했다. 우선 조건을 만족하는 h의 최댓값을 구하라고 했으니 citations를 내림차순으로 정렬한다. 2) i = 0부터 citations의 길이만큼 아래의 명령을 반복한다. 2-1) i이상의 숫자가 i개 이상 있는지 확인한다. 2-2-t) 현재 인덱스를 answer에 저장하고 반복문을 종료한다. 3) 만약 h-index를 찾지 못했다면 3-f) citations의 길이를 반환한다. 4) answer를 반환한다. 3. 결제코드..

1. 문제풀이(출처: programmers.co.kr/learn/courses/30/lessons/42746) 2. 문제 풀이 1) 문제에서 정수를 이어 붙여 만들 수 있는 가장 큰 수 라고 하였으므로 numbers에 있는 모든 숫자를 String으로 형 변환한 뒤, list에 저장한다. 2) list에 있는 정수 String끼리 서로 이어 붙인 숫자를 number로 형 변환한 뒤, 이를 바탕으로 내림차순 정렬을 한다. 3) 0만 있는 경우를 제거하기 위해 list내의 가장 큰 숫자를 Number로 형변환한다. 만약 그 값이 0이 아니라면 list에 있는 모든 숫자를 붙여서 반환하고, 0이라면 0을 반환한다. 3. 결과 코드 function solution(numbers) { let list = numb..

1. 문제설명(출처: programmers.co.kr/learn/courses/30/lessons/42748) 2. 문제풀이 1) 결과 값을 저장할 배열 answer을 만든다. 2) commends에 있는 각 요소들을 commend라고 정의하고 아래의 명령을 수행한다. 2-1) array에서 commend[0] - 1 부터 commend[1] 까지의 숫자를 꺼내 list에 저장한다. 2-2) list를 정렬한 뒤, commend[2] - 1번째 숫자를 꺼낸 뒤, selectedNumber에 저장한다. 2-3) selectedNumber를 answer에 저장한다. 3) answer를 반환한다. 3. 결과코드 function solution(array, commands) { var answer = []; f..

1. 문제설명(출처: programmers.co.kr/learn/courses/30/lessons/42587) 2. 문제풀이 1) 문제에서 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 알고 싶습니다. 라고 했으니, 해당 문서의 위치(location)에 표시를 하기 위해 [[1번 문서의 중요도, 요청한 문서 여부], [2번 문서의 중요도, 요청한 문서 여부], ... , [n번 문서의 중요도, 요청한 문서 여부]] 와 같은 형식의 q라는 queue를 만든다. 2) 몇번 인쇄가 됐는지 확인하기 위한 변수 cnt를 생성한다. 3) 아래 명령을 반복한다. 3-1) q 에서 맨 앞의 요소를 꺼내 cur에 저장한다. 3-2) 현재 q안에 cur보다 중요도가 높은 문서가 있는지 확인한다. 3-2-t) 만약 있다면..

1. 문제설명(출처: programmers.co.kr/learn/courses/30/lessons/42586) 2. 문제풀이 1) 시간 순서에 따라서 배포되는 기능의 갯수를 저장하기 위해 answer이라는 stack을 생성한다. 2) 개발중인 기능의 갯수만큼 아래의 명령을 반복한다. 2-1) 배포할 기능의 갯수를 저장할 cnt 변수를 생성한다. 2-2) 각각의 기능에 대하여 개발 속도만큼 개발을 진행한다. 2-3) 먼저 배포되어야할 기능이 배포준비가 완료되었다면, 아직 배포준비가 안된 기능이 나올 때까지 아래의 명령을 반복한다. 2-3-1) 현재 작업을 배포한다. 2-3-2) 현재 작업을 종료한다.(더 이상 개발하지 않음) 2-3-3) 배포할 기능의 갯수에 1을 더해준다. 2-4) 배포할 기능이 있는지 ..

1. 서론 위 문제는 brute force를 사용하면 이중 루프를 통해서 쉽게 해결할 수 있지만, stack / queue 문제로 분류된 만큼 stack을 사용해서 문제를 풀었다. 2.문제설명(출처: programmers.co.kr/learn/courses/30/lessons/42584) 3. 문제풀이 1) 시간을 측정할 answer의 길이를 prices와 동일하게 맞춘다. 2) stack으로 사용할 배열을 생성한다. 3) 모든 prices에 대하여 아래 명령을 반복한다. 3-1) 최초의 경우(stack이 비어있는 경우) 이거나 주식 가격이 떨어졌다면, 아래 명령을 반복한다. 3-1-1) 주식 값이 떨어지기 이전 시간을 stack에서 가져온 뒤 t에 저장한다. 3-1-2) 현재 시간 - t를 answer..