본문 바로가기

분류 전체보기

(140)
[정렬] 병합정렬 Swift 병합정렬 핵심 나누기 : 배열을 원소가 1개 남을때 까지 반으로 쪼갠다. 정렬 & 합치기 : 왼쪽과 오른쪽으로 쪼개진 배열을 비교해서 하나의 배열로 합친다. Swift 코드 // 참고 : 아이작 코드로 공부했다. v 재귀함수 동작에 대해 공부할 필요성을 느꼇다. import Foundation //이때 l과 r은 정렬이 된 상태여야 한다. func merged(l: [Int], r: [Int]) -> [Int] { var currentLeftIndex = 0 var currentRightIndex = 0 var sorted = [Int]() //왼쪽 오른쪽 배열을 비교해서 큰 숫자 차례로 담음 while currentLeftIndex < l.count && currentRightIndex < r.coun..
[정렬] H-Index 프로그래머스 Swift 문제 : https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 문제 이해하기가 생각보다 어려웠다.. 🤷 풀이방법 1. 숫자가 큰 순서대로 정렬 후 각 자리의 숫자와 자릿수를 비교 한다. 2. 자리수가 더 크거나 캍으면 그 자릿수를 반환한다. - 예시 1. [0, 0, 0, 0] 이면 역 정렬 -> [0, 0, 0, 0] 2. 각 자릿수 비교 -> [0, 0, 0, 0] : [0, 1..
[Queue] 다리를 지나는 트럭 - 프로그래머스 Swift 문제 : https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 풀이방법 : 주석참고 func solution(_ bridge_length:Int, _ weight:Int, _ truck_weights:[Int]) -> Int { var myTruckWeights = truck_weights var time = 1 var terminal = [(Int, Int)]() // (트럭무게, 터널..
[해쉬] 위장 - 프로그래머스 Swift 문제 : https://programmers.co.kr/learn/courses/30/lessons/42578 음.. 해쉬를 이용한다는 것 까지는 알았는데 수학에 약해서 경우의 수를 어떻게 계산해야 될지 몰랐다.. ㅠㅠ import Foundation func solution(_ clothes:[[String]]) -> Int { var result = 1 var dic = [String:Int]() for cloth in clothes { if dic[cloth[1]] == nil { dic[cloth[1]] = 1 } else { dic[cloth[1]]! += 1 } } for (key,val) in dic { result *= (val + 1) } //아무것도 선택 안하는 경우는 없으므로 1 빼줌..
[해쉬] N-Repeated Element in Size 2N Array - LeetCode Swift 문제 : https://leetcode.com/problems/n-repeated-element-in-size-2n-array/ class Solution { func repeatedNTimes(_ nums: [Int]) -> Int { var dic = [Int:Int]() for num in nums { if dic[num] == nil { dic[num] = 0 } else { return num } } return 0 } } 해쉬를 이용해서 똑같은 key가 나오면 그 key를 리턴하도록 했다.
함께 자라기 - 김창준 어떻게 해야 나를 성장시킬 수 있을까? 성장하고자 하는 동기 즉각적인 피드백 수정할 수 있는 기회 내가 골프를 친다고 하자. 그런데 내가 친 골프공이 어디로 갔는지, 몇 달 지나고 나서야 피드백 받는다고 하면 과연 내가 제대로 성장 할 수 있을까? 위의 사이클을 빠르게 가져가는 것이 자라기의 핵심이다. 1만시간의 법칙! 코딩 1만시간하면 전문가?? 여러분 모두 1만 시간의 법칙이라고 들어보셨을 겁니다. 어떤 분야의 전문가가 되기 위해서는 최소한 1만 시간의 훈련이 필요하다는 법칙이다. 여기서 어떤 일이든 1만 시간만 하면 전문가가 되는 것은 아니다. 예를들면 우리가 걷는 것을 1만시간 한다고 해서 걷는 것에 전문가가 되지는 않는다. 그렇다면 전문가가 되기 위해서 어떻게 1만 시간을 채워야하는 것인가? 우..
[완전탐색] LeetCode contains-duplicate : 중복찾기 - 스위프트 문제 : https://leetcode.com/problems/contains-duplicate/submissions/ Contains Duplicate - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 해결방법 Set로 중복체크하고 그 카운트와 중복체크 안한 배열의 카운트를 서로 비교해서 답을 찾았다. class Solution { func containsDuplicate(_ nums: [Int]) -> Bool { var setNums = Set(nums) ..
[큐] 프로그래머스 42587문제 : 프린터 - 스위프트 문제 : https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 처음엔 엄청 쉬운 문제 인줄 알았는데.. 풀다보니 쉽지 않았다. 큐,스택을 이용하는건 알았는데 어떻게해서 풀지? 바로 떠오르지 않았다. 음 아무래도 사고력 문제인걸까? 규칙들을 글로 먼저 써보는 연습해야겠다. 프린터는 인쇄 요청이 들어온 순서대로 꺼낸다. 만약 프린터 작업목록에 우선순위가 큰 것이 1개라도 있으면 출력하지 않고 뒤로 보낸다. 현재 작업물부터..