Algorithm

· Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/17687 (1) 0, 1, 2, 3, ... 각각을 n진수로 변환시키고, (2) "0", "1", "1", "0", "1", "1" ... 이렇게 쭉 하나의 배열로(arr) 만들고,(3) 그 문자열에서 p - 1번째, p - 1 + m 번째, 그리고 p - 1 + 2*m 번째, ... 의 인덱스의 문자들을 총 t개 뽑으면 된다. 튜브가 t번째 숫자를 말할 때는p + (t-1) * m번째 턴까지 필요하다. 틀린 코드 이때, arr을 배열이 아닌, 하나의 문자열로 만들고, String.index 를 사용하게 되면 시간초과가 날 수 있다.index(_:offsetBy:)는 공식문서에 나와있듯이 O(1..
· Algorithm
문제 링크카카오 코딩테스트: 이모티콘 할인행사문제 분석먼저 이 문제는 중복순열을 활용해야 하는 문제로서, 각 이모티콘마다 rates 적용한 경우의 수에서,문제에 제시된 두 목표일 때의, (이모티콘 플러스 서비스 가입 수와 이모티콘 매출액) 값을 갱신시켜나가야 하는 문제다.이 문제의 경우, 중복순열을 여러가지 방법으로 구현해보는 연습을 해보았다.특히 비트마스킹의 경우, 지금까지 2^n 가지 경우의 수 문제. 즉 2가지 선택을 n번 반복하는 경우에 대해서, 적용하는 문제에만 적용해왔는데,4^n 의 경우에는 1비트가 아니라 2비트를 사용하기에 이렇게도 코드를 짤 수 있구나. 생각해볼 수 있던 문제였다.물론, 4진법을 활용해서도 풀어보았다.구현하기에는 재귀방법이 가장 간단하고 빠르다. 그러나 학습을 위해 다양한..
· Algorithm
오늘 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import Foundation func solution(_ number:String, _ k:Int) -> String { var k = k var stack = [Character]() for num in number { while !stack.isEmpty && k > 0 && stack.last! < num { stack.removeLast() k -= 1 } stack.ap..
· Algorithm
오늘 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 내 코드 func solution(_ arr:[Int]) -> [Int] { var val: [Int] = arr val = val.filter { $0 != val.min() } return val.isEmpty ? [-1] : val } 내 코드의 문제점 filter, min() filter 메서드는 배열의 각 요소에 대해 특정 조건을 만족하는지 확인하고, 그 조건을 만족하..
· Algorithm
오늘 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 내 코드 import Foundation func solution(_ n: Int) -> Int { var answer: Int = 0 var num: Int = n while num > 0 { answer += num % 10 num /= 10 } return answer } while 반복문 안에서, answer (자릿수의 합)을 계산하였다. num % 10 으로, 일의 자..
· Algorithm
오늘 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 파이썬으로는, 풀었던 코드가 Swift 에서는 풀리지 않았다. 파이썬 코드부터 뭔가 잘못되었던 것 같다.. 아래는 내가 처음 풀었던 Swift 코드. func solution(_ k:Int, _ m:Int, _ score:[Int]) -> Int { var answer: Int = 0 var tmp: Int = 0 // 상자 안에 담기 사과의 개수 let s = score..
· Algorithm
오늘 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12901 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 func solution(_ a:Int, _ b:Int) -> String { let daysOfMonth = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] // 인덱스 0은 자리 표시자 let daysOfWeek = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"] // 1월 1일부터 주..
· Algorithm
오늘의 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 func solution(_ s:String) -> String { return s.count % 2 == 0 ? String(Array(s)[s.count / 2 - 1...s.count / 2]) : String(Array(s)[s.count / 2]) } Swift 에서는 String 의 길이를 알기 위해서, count 를 사용한다. 문제에서 가운데 글자를 추출해야 하므..
· Algorithm
오늘 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42748?language=swift 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 import Foundation func solution(_ array:[Int], _ commands:[[Int]]) -> [Int] { var answer = [Int]() for com in commands { let i = com[0] - 1 let j = com[1] - 1 let k = com[2] - 1 let slicedArray: ..
· Algorithm
오늘 푼 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12954 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 1차 풀이 func solution(_ x:Int, _ n:Int) -> [Int64] { var answer: Array = [] var num = Int64(x) for _ in 0...n - 1 { answer.append(num) num += Int64(x) } return answer } 문제를 보고, answer 를 반환하기 위해서 명시적으로 for 반복문을 사용..
iyungui
'Algorithm' 카테고리의 글 목록