본문 바로가기
728x90

알고리즘/프로그래머스65

프로그래머스 - 겹치는 선분의 길이 https://school.programmers.co.kr/learn/courses/30/lessons/120876 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 좌표의 위치를 저장 해둘 배열을 만들고 3개의 좌표 위치를 모두 저장한다. 이렇게 저장하고 나면 해당 좌표에 저장되는 좌표가 2개 이상 되는 경우를 카운팅 func solution(_ lines:[[Int]]) -> Int { // 원소의 start와 end의 범위가 -100 ~ 100 사이 이므로 200개의 count var table = Array(repeating: [], count:.. 2023. 11. 30.
프로그래머스: 해시 - 베스트앨범 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 장르별 많이 재생된 두곡 씩 추리는 문제 해시테이블의 인덱스를 어떻게 이용해야 하나 고민하다가 장르를 키로 갖고, 인덱스와 재싱수를 딕셔너리 벨류로 갖는 딕셔너리를 만들었는데 그 뒤로는 생각이 너무 많아 쉽사리 코드로 옮기지를 못했다... 시간을 너무 소비하였고 다른 사람의 풀이로 코드를 이해해보기로 했다. 결국 문제를 하나씩 분리해서 그대로 코드로 작성하면 되는 것이었음. 앞으로는 너무 생.. 2023. 11. 29.
프로그래머스: 연습문제 - 최솟값 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 개의 배열에서 각자 숫자를 가져와 곱한 합의 최솟값을 구하는데 제일 작은 수와 제일 큰 수를 곱하면 최소합을 구할 수 있다. func solution(_ A:[Int], _ B:[Int]) -> Int { var answer: Int = 0 let acs = B.sorted(by: ) for i in 0.. 2023. 11. 27.
프로그래머스: 월간 코드 챌린지 시즌3 - n^2 배열 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/87390#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 시간초과로 혼자 풀기 실패 이 글을 보고 이해했다 -> https://hogumachu.tistory.com/21 이중for문을 만들어 이용할 필요 없이 딱 필요한 부분의 값만 구하여 리턴하는데 left와 right값과 n의 몫과 나머지를 이용하면 값을 만들어 낼 수 있다. // 시간 초과 코드 func solution(_ n:Int, _ left:Int64, _ right:Int64.. 2023. 10. 13.
프로그래머스: 완전탐색 - 카펫 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 brown과 yellow의 합이 완성된 배열의 크기이며, yellow를 brown으로 감싸야 하므로 최소 높이는 3부터 시작 한다. func solution(_ brown:Int, _ yellow:Int) -> [Int] { let totalCellCount = brown + yellow var number = 3 while true { if (totalCellCount % number !=.. 2023. 10. 7.
프로그래머스: 월간 코드 챌린지 시즌1 - 이진 변환 반복하기 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 func solution(_ s:String) -> [Int] { var removeCount = 0 var radixCount = 0 var currentS = s while currentS != "1" { var zeroCount = 0 for x in currentS { if x == "0" { zeroCount += 1 removeCount += 1 } } let radix = Str.. 2023. 10. 6.
프로그래머스: 기사단원의 무기 https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음 풀었던 방식 -> func solution(_ number:Int, _ limit:Int, _ power:Int) -> Int { var divisors = 0 for i in 1 ... number { var count = 0 for j in 1 ... i { if i % j == 0 { count += 1 } } if count > limit { count = power } div.. 2023. 10. 4.
프로그래머스: 2018 카카오 블라인드 채용 - [1차] 캐시 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 LRU 알고리즘을 이용해서 캐시 만큼 배열 요소 개수가 차면 0번 인덱스 값을 지워주고 최근 검색 중인 city가 배열에 있는지 확인 후 있으면 지워준 뒤 맨 뒤로 넣어주는 작업을 해주면 된다. (단, city가 치사하게 대문자일 때도 있고 소문자일때도 있으니 처음에 그냥 cities를 대문자건 소문자건 싹다 바꿔준디 작업해야함) func solution(_ cacheSize:Int, _ c.. 2023. 7. 21.
프로그래머스: 과일 장수 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 score = 사과 수 즉, 이 사과 들 중에 m개 씩 빼와서 상자를 만들어야 한다 그러면 score.count / m 만큼 상자를 만들 수 있는데 최대 이익을 내야 하므로 score를 오름차순 정렬한 배열에서 최대 이익을 만들 수 있는 score.count % m 인덱스 값부터 상자를 만들어 내면 된다. 이 상자들 각자 최저 사과 점수) x (한 상자에 담긴 사과 개수) 를 구해서 값들을.. 2023. 7. 20.