적당한 고통은 희열이다

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

반응형

Algorithm 159

[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 이하인 자연수이고 알파벳 소문자 또는 '_' 로만 이루어져 있습니다. - 스파이는 하루에 최소 한 개..

[Swift 알고리즘] Programmers Lv.2 기초 문제들

드디어 레벨 2 문제로 넘어왔다! 근데 레벨 2 라고 다 어려운게 아니네.. 1보다 쉬운 문제들이 많구만 한 번만에 통과한 기초문제들을 모아보겠다. 완전탐색 (35분) 카펫 문제 설명 Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 - 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. - 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. - 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. 입출력 예시 print(solution(10, 2)) //[4, 3] print(so..

[Swift 알고리즘] Programmers 햄버거 만들기

× Level 1 연습문제 햄버거 만들기 문제 설명 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수에게 전해지는 재료의 정보를 나타내는 정수 배열 ingredient가 주어졌을 때, 상수가 포장하는 햄버거의 개수를 return 하도록 solution 함수를 완성하시오. 제한사항 - 1 ≤ ingredient의 길이 ≤ 1,000,000 - ingredient의 원소는 1, 2, 3 중 하나의 값이며, 순서대로 빵, 야채, 고기를 의미합니다. 입출력 예시 print(solution([2, 1, 1, 2, 3, 1, 2, 3, 1])..

[Swift 알고리즘] Programmers 신고 결과 받기

× △ Level 1 2022 KAKAO BLIND RECRUITMENT 신고 결과 받기 문제 설명 이용자의 ID가 담긴 문자열 배열 id_list, 각 이용자가 신고한 이용자의 ID 정보가 담긴 문자열 배열 report, 정지 기준이 되는 신고 횟수 k가 매개변수로 주어질 때, 각 유저별로 처리 결과 메일을 받은 횟수를 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 - 2 ≤ id_list 의 길이 ≤ 1,000 - 1 ≤ report 의 길이 ≤ 200,000 - 1 ≤ k ≤ 200, k는 자연수입니다. - return 하는 배열은 id_list에 담긴 id 순서대로 각 유저가 받은 결과 메일 수를 담으면 됩니다. 크.. 역시 카카오인가.. 레벨 1인데도 쉽지 않다...

Swift 반복문

stride x부터 y까지 z만큼의 간격으로 반복문을 돌리는 것. for i in stride(from: x, to: y, by: z) : x ~ y 까지 반복문을 돌리는데, y는 포함시키지 않음. x ≤ range < y for i in stride(from: x, through: y, by: z) : y 까지 포함하여 x ~ y 까지 반복문 돌리기. x ≤ range ≤ y for i in stride(from: 5, to: 1, by: -1) { print(i) //5 4 3 2 } for i in stride(from: 5, through: 1, by: -1) { print(i) //5 4 3 2 1 } 단순히 하나씩이 아니라 n 씩 건너 뛰면서 반복문을 돌리거나, 주어진 순서와 반대로 반복문을 ..

Algorithm/참고 2022.10.29
728x90
반응형