본문 바로가기

알고리즘85

[Swift] 프로그래머스 - 카카오 신고 결과 받기 문제: https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 신고당한사람: [신고자] 딕셔너리를 만들어 신고당한 카운트를 세 주었습니다. 또 신고당한개수가 k개를 넘으면 그 사람을 신고한 사람에게 메일이 가도록 mail 딕셔너리를 만들었습니다. 조금 비효율적인 코드라고 생각하지만 효율성이 빡빡하지 않아서 통과한 것 같습니다. import Foundation func solution(_ id_list:[Str.. 2022. 2. 10.
[Swift] 프로그래머스 - 로또의 최고 순위와 최저 순위 문제: https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr min(6, ~) 이 부분을 깜빡해서 15분정도 더 걸렸네요. 풀이에 약 30분 걸렸습니다. import Foundation func solution(_ lottos:[Int], _ win_nums:[Int]) -> [Int] { // 일치하는 숫자들 let correct = lottos.filter { wi.. 2022. 2. 10.
[Swift] 프로그래머스 - 카카오 신규 아이디 추천 문제: https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 1~7단계를 구현해주면 되는 문제였습니다. import Foundation func solution(_ new_id:String) -> String { // 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. var result = new_id.lowercased() // 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑.. 2022. 2. 10.
[Swift] 프로그래머스 - 이중우선순위큐 문제: https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 최소힙과 최대힙 각각 만들어서 계산해주었습니다! import Foundation public struct Heap { var elements: [Element] = [] let sort: (Element, Element) -> Bool init(sort: @escaping (Element, Element) -> Bool, elements: [Element] = []) { self.sort = sort self.elements = elements buildHeap() } var isEmpty: Bool { elements.isEmpt.. 2022. 2. 9.
[Swift] 소수 판별 알고리즘 1. 비효율적인 소수 판별 알고리즘 func isPrime(x: Int) -> Bool { for i in 2.. Bool { for i in 2...Int(sqrt(Double(x))) { if x % i == 0 { return false } } return true } 3. 에라토스테네스의 체 let n = 1000 // 2부터 1,000까지의 모든 수에 대하여 소수 판별 var array = Array(repeating: true, count: n + 1) // 처음엔 모든 수가 소수(True)인 것으로 초기화 for i in 2...Int(sqrt(Double(n))) { // 2부터 n의 제곱근까지의 모든 수를 확인하며 if array[i] == true { // i가 소수인 경우 (남은 수인.. 2022. 2. 8.
[Swift] 백준 - 청소년 상어 코드 문제: https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net import Foundation // 물고기 번호 0 -> 빈칸, 물고기 번호 -1 -> 상어 var array = Array(repeating: [[Int]](), count: 4) // [물고기 번호, 방향] for i in 0...3 { let arr = readLine()!.split(separator: " ").map { Int($0)! } array[i].app.. 2022. 2. 8.