적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Algorithm/Programmers 60

[Swift 알고리즘] Programmers 다음 큰 숫자

△ Level 2 연습문제 다음 큰 숫자 어려운 문제 아닌데 쓸데없이 헤맸음.. 침대에 누워서 코딩 금지..! ㅋㅋㅋ 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 입출력 예시 print(sol..

[Swift 알고리즘] Programmers 피보나치 수

○ Level 2 연습문제 피보나치 수 이거 먼저 풀었으면 멀리뛰기를 쉽게 풀었을듯. 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 다음과 같이 이어집니다. F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 - n은 2 이상 100,000 이하인 자연수입니다. 입출력 예시 p..

[Swift 알고리즘] Programmers 멀리뛰기

× Level 2 연습문제 멀리뛰기 정답률 64%라서 만만하게 봤는데, 함정? 이 꽤 있는 문제였다. 피보나치수열 / 점화식 / 정수 오버플로우 / 재귀말고 dp 문제 설명 멀리 뛰기를 연습하고 있습니다. 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 다음의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다. 제한 사항 - n은 1 이상, 2..

[Swift 알고리즘] Programmers 뉴스 클러스터링

△ Level 2 2018 KAKAO BLIND RECRUITMENT (3시간?😅) [1차] 뉴스 클러스터링 문제 풀면서도 계속 헷갈려서 오래 걸렸다.. 으 ! 진짜 카카오는 문제가 끔찍하게 길고 복잡한듯.. 🤢 문제 꼼꼼하게 잘읽자! 문제 설명 유사한 기사를 묶는 기준을 정하기 위해서 논문과 자료를 조사하던 튜브는 "자카드 유사도"라는 방법을 찾아냈다. 자카드 유사도는 집합 간의 유사도를 검사하는 여러 방법 중의 하나로 알려져 있다. 두 집합 A, B 사이의 자카드 유사도 J(A, B)는 두 집합의 교집합 크기를 두 집합의 합집합 크기로 나눈 값으로 정의된다. 예를 들어 집합 A = {1, 2, 3}, 집합 B = {2, 3, 4}라고 할 때, 교집합 A ∩ B = {2, 3}, 합집합 A ∪ B = ..

[Swift 알고리즘] Programmers 영어 끝말잇기

○ Level 2 Summer/WinterCoding(~2018) (40분) 영어 끝말잇기 문제 설명 n명의 사람이 영어 끝말잇기를 한다. 사람의 수 n과 사람들이 순서대로 말한 단어 words 가 매개변수로 주어질 때, 가장 먼저 탈락하는 사람의 번호와 그 사람이 자신의 몇 번째 차례에 탈락하는지를 구해서 return 하도록 solution 함수를 완성해주세요. 제한 사항 - 끝말잇기에 참여하는 사람의 수 n은 2 이상 10 이하의 자연수입니다. - words는 끝말잇기에 사용한 단어들이 순서대로 들어있는 배열이며, 길이는 n 이상 100 이하입니다. - 단어의 길이는 2 이상 50 이하입니다. - 정답은 [ 번호, 차례 ] 형태로 return 해주세요. - 만약 주어진 단어들로 탈락자가 생기지 않는다..

[Swift 알고리즘] Programmers 프린터

○ Level 2 스택/큐 (1시간) 프린터 문제 설명 중요도가 높은 문서를 먼저 인쇄하는 프린터는 아래와 같은 방식으로 인쇄 작업을 수행. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수로 주어질 때, 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return 하도록 solution 함수를 작성해주세요. 제한사항 - 현재 대기목록에는 1개 이상 ..

[Swift 알고리즘] Programmers n^2 배열 자르기

○ Level 2 월간 코드 챌린지 시즌3 (1시간) n^2 배열 자르기 이것도 약간 규칙찾기 문제 문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. 1. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. 2. i = 1, 2, 3, ..., n에 대해서, 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 3. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 4. 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다. 정수 n, left, right가 매개변수로 주어집니다. 주어진 과정대로 만들어..

[Swift 알고리즘] Programmers 이중우선순위큐

○ Level 3 힙(Heap) (20분) 이중우선순위큐 왜 3단계지..? 시간초과도 안뜨고.. min max 안쓰고 직접 구현해봤어야 하는건가..? 문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. - I 숫자 : 큐에 주어진 숫자를 삽입합니다. - D 1 : 큐에서 최댓값을 삭제합니다. (둘 이상인 경우 하나만 삭제) - D -1 : 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 - operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. - ..

[Swift 알고리즘] Programmers 위장

× Level 2 해시 위장 딕셔너리로 해시맵 만드는건 쉽게 했는데, 가능한 조합 수 구하는걸 못해서 힌트 참고.. 알고보니 수학문제에 가까웠다.. 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 - clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. - 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. - 같은 이름을 가진 의상은 존재하지 않습니다. - 모든 문자열의 길이는 1 이상 20 이하인 자연수이고 알파벳 소문자 또는 '_' 로만 이루어져 있습니다. - 스파이는 하루에 최소 한 개..

728x90
반응형