적당한 고통은 희열이다

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

반응형

Algorithm 159

[Swift 알고리즘] Programmers 성격 유형 검사하기

○ LEVEL 1 2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기 문제 설명 질문마다 판단하는 지표를 담은 1차원 문자열 배열 survey와 검사자가 각 질문마다 선택한 선택지를 담은 1차원 정수 배열 choices가 매개변수로 주어집니다. 이때, 검사자의 성격 유형 검사 결과를 지표 번호 순서대로 return 하도록 solution 함수를 완성해주세요. 제한사항 - 1 ≤ survey의 길이 ( = n) ≤ 1,000 survey의 원소는 "RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA" 중 하나 - choices의 길이 = survey의 길이 1 ≤ choices의 원소 ≤ 7 입출력 예시 print(solution(["AN", "CF", "MJ"..

[Swift 알고리즘] Programmers 옹알이

△ Level 1 연습문제 옹알이 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 - 1 ≤ babbling의 길이 ≤ 100 - 1 ≤ babbling[i]의 길이 ≤ 30 - 문자열은 알파벳 소문자로만 이루어져 있습니다. 입출력 예시 print(solution(["aya", "yee", "u", "maa"])) //1 print(solutio..

코테공부 시행착오

문제 출제 유형 가장 많이 출제되는 다섯가지 유형 : DFS/BFS - 문자열 - 단순구현 - 완전탐색 - 해시 + DP, 재귀함수, 다익스트라 ... + 스택, 큐, 그리디 코딩테스트 볼 때 명심할 것 1. 디버깅의 범위를 이분탐색으로 좁히기 문제를 보고 구현 방식을 설계한 후 코드 작성을 해야, 추후 디버깅 시 단계별로 나누어 디버깅의 범위를 좁힐 수 있다. 2. 좁힌 범위를 논리적으로 분석하기 무작정 모든 곳에 print를 찍어보는 것이 아니라, 코드를 논리적으로 분석하고 흐름을 생각해보며 예외처리 누락 등 어디가 잘못되었는지 분석해봐야 한다. 3. 예외 케이스 TC를 직접 만들어 검증하기 주어진 테스트 케이스 말고도, 중복 허용할지 말지, 순서 중요한지 아닌지 등 문제별 각 예외케이스들에 대한 테..

Algorithm/참고 2022.10.27

시간복잡도와 공간복잡도

복잡도란? 알고리즘의 성능을 나타내는 척도 시간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래걸리는지를 의미 공간복잡도 : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지를 의미 복잡도를 측정함으로써 시간복잡도에서는 알고리즘에 의해 필요한 연산의 횟수를, 공간복잡도에서는 사용되는 메모리의 양을 계산할 수 있다. 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 시간 복잡도 시간 복잡도 표현할 때는 빅오 Big-O 표기법을 사용 빅오 표기법이란? : O(N) 연산횟수 N번 반복문 돌리는 경우 O(1) 연산횟수 1 O(N²) 데이터 개수가 N개일 때, 2중 반복문 돌리는 경우 시간제한이 1초인 문제에 대한 시간복잡도 설계 예시 N의 범위 500 인 경우 : O(N³) 알고..

[Swift 알고리즘] Programmers 숫자 짝꿍

△ Level 1 연습문제 숫자 짝꿍 문제 설명 두 정수 X, Y가 공통으로 가지는 정수 k(0 ≤ k ≤ 9) 들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 한다. 짝꿍이 존재하지 않으면 짝꿍은 -1. 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0. 두 정수 X, Y가 주어졌을 때, X, Y의 짝꿍을 return하는 solution 함수를 완성해주세요. 제한사항 - 3 ≤ X, Y의 길이(자릿수) ≤ 3,000,000입니다. - X, Y는 0으로 시작하지 않습니다. - X, Y의 짝꿍은 상당히 큰 정수일 수 있으므로, 문자열로 반환합니다. 입출력 예시 print(solution("3403", "13203")) //330 print(solution("100", "2345")) //-1 pr..

[Swift 알고리즘] Programmers 콜라문제

Level 1 연습문제 ○ 콜라문제 문제 설명 콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다 주면 마트가 주는 콜라 병 수 b, 상빈이가 가지고 있는 빈 병의 개수 n이 매개변수로 주어집니다. 상빈이가 받을 수 있는 콜라의 병 수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 1 ≤ b Int { var result = 0 var n = n while n >= a { result += (n/a)*b n = (n/a)*b + n%a } return result } 쓸데없이 37분 걸림 ㅡㅡ 이해하는 데 크게 어렵진 않았지만 마트에서 주는 콜라 병 수 b병 처리하는 게 좀 헷갈려서 시간을 좀 잡아먹었다. 멋진 답안 func solution(_ a:Int, _ ..

[Swift 알고리즘] Codility: CyclicRotation

https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/ Lesson 2 Arrays (Easy) CyclicRotation Rotate an array to the right by a given number of steps. 주어진 정수 배열A를 K만큼 오른쪽으로 회전시키는 문제. 입출력 예시 var arr = [3,8,9,7,6] print(solution(&arr, 3)) //[9,7,6,3,8] 처음에 그냥 print(solution([3,8,9,7,6],3)) 으로 입력값을 주었더니 Cannot pass immutable value of type '[Int]' as inout argument 이라는 에러가 떴다! 처음보는 in..

Algorithm/Codility 2022.05.23

[Swift 알고리즘] Codility: BinaryGap

https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ Lesson 1 Iterations (Easy) BinaryGap Find longest sequence of zeros in binary representation of an integer. 처음 풀어보는 Codility 문제. 영어로 되어 있어 당황스러웠지만, 크게 어렵진 않았다. Swift언어는 Swift4 로 지원이 되는듯..? 주어진 양의 정수 N을 이진수로 변환했을 때, 1과 1로 둘러싸인 연속된 0의 갯수 중 최대값을 반환하는 문제. 입출력 예시 print(solution(9)) //1001 => 2 print(solution(529)) //1000010001 => 4..

Algorithm/Codility 2022.05.21

[Swift 알고리즘] 백준 2231 분해합

백준 2231번 브루트 포스 예제 2단계 1차시도 : 69100KB / 296ms 아무런 조건 없이 그냥 1부터 다 검사하는 걸로 해도 시간은 오래걸리지만 통과는 되더라. func minGenerator(_ n: Int) -> Int { for i in 1...n { var sum = i for j in String(i) { sum += Int(String(j))! } if sum == n { return i } } return 0 } 2차시도 : 69100KB / 8ms 1부터 다 체크하는 건 비효율적이기 때문에 조건을 달아주었다. 입력 숫자가 256일 경우, 각 자리 수의 최대 합은 2 + 9 + 9 = 20 이 된다고 생각했다. 그러면 256의 생성자는 최소 256 - 20 = 236 이상이 될 수..

Algorithm/Baekjoon 2022.04.28
728x90
반응형