본문 바로가기

코딩테스트

(9)
프로그래머스 - L2 최댓값과 최솟값 아직 많이 부족하나 레벨 2 관련 문제들도 시작하였습니다 하하!설계문자열을 split하여 나눠 순회하여 min, max 판별하기! git : 최댓값과 최솟값문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12939문제 풀이설계대로 진행하였으며, 음수 문자의 Int 캐스팅 또한 지원합니다!func solution(_ s:String) -> String { let splitArray = s.split(separator: " ") var min = Int.max var max = Int.min splitArray.forEach{ item in guard let number = Int(item) else { return } if(min > numb..
프로그래머스 - L1 기사단원의 무기 설계약수 개수를 구할 수만 있다면, 스무스하게 풀릴거 같습니다.소수 개수 판단법 확인했을 때, number의 제곱근만큼 확인했던 기억을 살려 활용해보자. git : 기사단원의 무기문제 : https://school.programmers.co.kr/learn/courses/30/lessons/136798문제 풀이numbers 를 순회하여 index + 1의 약수의 개수를 넣어주기약수 개수 반환 알고리즘은 number의 제곱근만큼 반복하여 나눠줘서 나머지가 없는 경우 카운팅을 해주는데, 예를들어 16의 약수 개수를 카운팅한다고 했을때, 2 * 8 은 두 개로 카운팅되지만, 4 * 4는 하나로 카운팅해야하므로, 나눈 값과 몫을 확인해야한다!약수 개수가 채워진 numbers를 limit 이하 만큼 필터해준 뒤,..
프로그래머스 - L1 소수 찾기 설계소수를 판단하는 함수 구현∙ 1…N/2 순회하여 나눠지는 값이 있는 경우 소수가 아니라 판단 반복문을 통해 숫자 하나씩 소수를 판단∙ 소수인 경우 자신 제외 배수들은 소수가 아니기에 제외∙ 소수가 아닌 경우 제외 계속 시간 초과로 인한 실패로 소수 찾기 알고리즘 확인에라토스테네스의 체 알고리즘 확인 후 구현 소수 찾기 알고리즘 주제로 정리하여 포스팅하도록 하겠습니다!;;; 처음 접하는 알고리즘이라 헤맸네요 git : 소수 찾기문제 : https://school.programmers.co.kr/learn/courses/30/lessons/132267문제 풀이에라토스테네스의 체 알고리즘을 간단하게 글로 설명드리면 !1 부터 10 내 소수를 찾는다고 가정을 하면∙ 1을 제외한 2 ~ 10을 쭉 나열합니다...
프로그래머스 - L1 콜라 문제 설계반복문 안에서 총 받은 콜라병 수 와 남은 콜라병 수를 계산남은 콜라병 수로 더 이상 교환이 불가능 할 때 반복문 멈추기 git : 콜라 문제문제 : https://school.programmers.co.kr/learn/courses/30/lessons/132267문제 풀이result 총 콜라를 받은 수cokeBottle 콜라 교환 후 남은 콜라의 수위를 계산하여 반복문 진행 중 cokeBottle이 마트에 줘야하는 병 수보다 작으면 더 이상 교환을 못 하기 때문에 반환import Foundation // a : 마트에 줘야 하는 수 // b : 마트에서 받는 수 // n : 초기 콜라 개수 func solution(_ a:Int, _ b:Int, _ n:Int) -> Int { var result:..
프로그래머스 - L1 크기가 작은 부분 문자열 설계반복문을 통해 문자열을 탐색하되 반복문의 범위 설정 중요문자열 자르기, 숫자 문자열을 Int 변환하기조건에 맞는 경우 카운팅 git : 크기가 작은 부분 문자열문제 : https://school.programmers.co.kr/learn/courses/30/lessons/147355문제 풀이Array를 Slice 한 값을 Int로 변환하는 convertArrayToInt 정의p의 문자열 길이를 구해 반복문 range 설정반복하여 조건에 맞을 경우 카운팅import Foundation func solution(_ t:String, _ p:String) -> Int { var result: Int = 0 let pLength = p.count let tLength = t.count guard let pI..
프로그래머스 - L1 문자열 내 마음대로 정렬하기 설계정해진 규칙 함수화배열 sort하여 반환 git : 문자열 내 마음대로 정렬하기문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12915?language=swift문제 풀이정해진 index에 대해 값을 비교하며, 같은 경우 원본 String을 사전순 비교하는 sortByRule 함수 작성sorted를 활용해 주어진 규칙에 정렬하여 반환import Foundation func solution(_ strings:[String], _ n:Int) -> [String] { return strings.sorted{ front, back in return sortByRule(front, back, n) } } func sortByRule(_ fir..
프로그래머스 - L1 최대공약수와 최소공배수 설계수학적 공식과 동일하게 접근 git : 최대공약수와 최소공배수문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12940문제 풀이∙ getGCD : 최대공약수 구현두 수 중 작은 수를 선택해 역순으로 for문을 돌아 둘 다 나눠지는 값이 최대공약수∙ getLCM : 최소공배수 구현n은 m 만큼 반복을 통해 배수를 Set에 담기m은 n 만큼 반복을 통해 배수를 Set에 담기두 Set의 교집합을 구하여 min 값을 반환하면 최소 공배수func solution(_ n:Int, _ m:Int) -> [Int] { var result: [Int] = [] result.append(getGCD(n,m)) result.append(getLCM(n,m)..
프로그래머스 - L1 문자열 내 p와 y의 개수 설계반복분을 통해 문자열 하나씩 확인하여 p 인 경우 +1 , y 인 경우 -1 하여 결과가 0을 기준으로 true, false로 반환대문자 및 소문자 통일foreach 사용 git : 과일장수문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12916문제 풀이∙ 문자열 대문자로 통일 uppercased도 결과적으론 문자열 길이만큼 탐색하여 비효율적..?∙ 문자열 foreach 하여 p, y 카운팅func solution(_ s:String) -> Bool { var ans:Bool = false var counter: Int = 0 var upperS = s.uppercased() upperS.forEach{ str in if(str == ..