적당한 고통은 희열이다

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

반응형

분류 전체보기 586

[Swift 알고리즘] 백준 10872 팩토리얼

백준 10872번 재귀함수 기초 예제 팩토리얼 //반복문 let input = Int(readLine()!)! print(factorial(input)) func factorial(_ n: Int) -> Int { var result = 1 if n > 1 { for i in 2...n { result *= i } } return result } //재귀함수 let input = Int(readLine()!)! print(factorial(input)) func factorial(_ n: Int) -> Int { if n == 0 { return 1 } return n * factorial(n - 1) } //꼬리재귀 let input = Int(readLine()!)! print(factorial(in..

Algorithm/Baekjoon 2022.04.27

[알고리즘] 재귀 Recursion

재귀(Recursion)란? : 컴퓨터 과학에서 재귀란 자신을 정의할 때 자기 자신을 재참조하는 방법을 의미한다. 재귀 함수(Recursion Function)란? 함수에서 자기 자신을 다시 호출해 작업을 수행하는 방식 특정 분기까지 자기 자신을 계속해서 호출하는데, 주로 반복문을 구현할 때 사용한다. for, while 등의 반복문으로 구현가능한 로직은 모두 재귀함수로도 가능하고 그 반대 역시 가능하다. 재귀함수의 가장 대표적인 사용 예제는 팩토리얼(Factorial) 재귀함수 공식 func 함수이름(매개변수) { if 종료조건 { return 종료값 } return 점화식 //결과값을 받을 변수 = 함수이름(입력변수) } 재귀함수 사용시 주의할 점 스택 오버플로우(stack overflow)를 주의해..

[알고리즘] 깊이/너비 우선 탐색 DFS/BFS

그래프 탐색 알고리즘 DFS / BFS 그래프 : 여러 개체들(node)이 간선(edge)로 연결되어 있는 자료구조 탐색 : 특정 개체를 찾기 위한 알고리즘. 그래프 탐색 : 하나의 노드로 부터 시작해 차례대로 모든 정점들을 한번씩 방문하는 것. * 그래프와 트리의 차이? 간단하게 말하자면 그래프 중에서 방향성이 있는 비순환 그래프를 트리라고 한다. 대표적 문제 유형 1. 경로 탐색 유형 (최단거리, 시간) 2. 네트워크 유형 (연결) 연결되어 있는 그룹의 갯수 구하기 or 두 개체가 같은 네트워크 속에서 연결되어 있는지 확인 3. 조합 유형 (모든 조합 만들기) 여러가지 조합 모두 만들고 비교 ex) 프로그래머스 타겟넘버, 네트워크, 단어변환, 여행경로 등 깊이 우선 탐색 (DFS, Depth-Firs..

[Swift 알고리즘] Programmers 기능개발

○△ Level 2 스택/큐 기능개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 - 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. - 작업 진도는 100 미만의 자..

[Swift iOS] UPC-A barcode format scan & generate

취급하는 상품이 늘어나면서 계속 새로운 바코드 형식들을 추가해주고 있다. UPC-A 형식의 바코드도 사용할 수 있도록 요청을 받았는데, iOS에서는 신기하게도 이 형식을 EAN-13으로 읽어들이는 것이었다. 찾아보니 12자리의 UPC-A 바코드 형식을 iOS에서는 맨 앞자리에 0을 더해주어 13자리의 EAN-13 형식으로 인식하도록 되어있다고 한다. 신기하구만. UPC-A barcode Scan 그래서 바코드 스캔할 때 AVCaptureMetadataOutput()의 metadataObjectTypes에서도 .upca 형식은 없고 .ean13 형식을 추가해주면 그걸로 읽힌다. 그리고 바코드 인식결과 후처리로 다음과 같이 바코드 형식이 ean-13이고 시작하는 숫자가 0일 때 0을 제거하여 12자리의 up..

[Swift 알고리즘] 최소직사각형

Level 1 위클리 챌린지 최소 직사각형 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으..

[Swift 알고리즘] 다트 게임

Level 1 2018 KAKAO BLIND RECRUITMENT 다트 게임 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 다트 게임의 점수 계산 로직은 아래와 같다. 1. 다트 게임은 총 3번의 기회로 구성된다. 2. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 3. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 4. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 시 해당 점수와 바로..

카테고리 없음 2022.03.02

[Swift 알고리즘] 소수 판별

코딩 테스트 연습문제로 종종 나오는 소수 찾기에 대해 제대로 알아보자 소수 Prime Number : 1 보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 자연수 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,… 등은 모두 소수 소수가 아닌 자연수는 합성수 1은 소수도 합성수도 아니다. 소수 판별법 1 자연수 n이 소수인지 아닌지를 판정하려면, 인 범위에 있는 모든 소수 p로 n을 나누어 보아, 나누어 떨어지지 않으면 소수이고, 나누어 떨어지면 합성수이다. 즉, 소수는 양의 약수로 1과 자신만을 가진 자연수이며 합성수는 양의 약수가 1과 자기자신을 포함하여 3개 이상인 자연수이다. 참고 : 네이버 지식백과 어떤 자연수가 소수임을 판정하기 위해서는 √n 까지의 수 중 1을 제외하..

Algorithm/참고 2022.02.28
728x90
반응형