본문 바로가기
728x90

전체 글228

프로그래머스: 해시 - 베스트앨범 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.
기본 Observable: 이벤트를 비동기적으로 처리하고 실시간 관찰 Operator: Observable에 의해 방출되는 이벤트를 변환,처리 Schedulers: DispatchQueue와 같음 Subscribe: 생성된 Observable을 실행 시킨다. let observable = Observable.of(1,2,3) observable.subscribe({ event in print(event) }) /* Prints: next(1) next(2) next(3) completed */ 위 코드를 다음과 같이 사용할 수도 있다. let observable = Observable.of(1,2,3) .subscribe(onNext: { num in print(num) }, onCompleted: { pri.. 2023. 11. 23.
숫자 다루기 나눈 수의 소수점 사용하는 숫자의 타입이 Int일 경우 결과값도 Int형이므로 사용하는 숫자의 타입을 Double로 바꾸어야 한다. let num1 = 3 let num2 = 2 print(num1 / num2) // 1 let num1: Double = 3 let num2: Double = 2 print(num1 / num2) // 1.5 제곱근 찾기 let number = 121 print(sqrt(number)) // 11 2023. 11. 7.
2023 올림픽데이런 건강을 위해 시작했던 달리기에서 마라톤을 생애 첫 도전 했다. 처음이니 가볍게 5KM 코스가 있는 '올림픽데이런'을 신청 생각보다 신청자가 많아서 접수하는데 좀 고생했지만 성공! 비용은 44,000원이었고 대회가 10월 8일, 참가기념품 배송은 9월 21일에 받았으니 대회 2주 전에 발송해주는 듯하다 대회 당일 오전 7시까지 가야해서 새벽 같이 일어나 출발했다. 지하철에서 뜨문뜨문 참가자들이 보였다. 사람들이 와글와글 인원이 많다보니 6개의 그룹으로 나뉘어 차례대로 출발한다. 출발 ~ 1KM 돌파 중간에 파워에이드로 목도 축이고 다와간다아아 드디어 도착지가 코 앞이라 우다다 달려나갔다 42분만에 완주 성공 :) 중간중간 사진찍으면서 안놀았으면 30분대였겠다.... 아숩 처음 도전해본 마라톤이다보니 완주하.. 2023. 10. 30.
빅 오 Big O? 어떠한 문제를 해결하는데에 사용되는 자료 구조와 알고리즘의 효율성을 설명하기 위한 것으로 수학적 개념을 차용하여 빅 오 표기법 이라 부른다. 알고리즘의 효율성을 평가할 때에는 두 가지의 기준으로 나뉘는데, 한정된 메모리 공간을 분석하는 공간 분석과 알고리즘이 어느 정도 빠른지 알아보는 시간 분석이 있다. 시간과 공간 복잡성을 계산할 때 최상, 최악, 평균 복잡성을 고려하게 되지만, 보통은 최악의 시나리오를 의미한다. 이는 비관적인 접근이 유용한 도구일 수 있기 때문이다. 알고리즘이 얼마나 비효율적인지 알면 최악을 대비함과 동시에 알고리즘의 선택에 중요한 영향을 미칠 수 있다. 빅 오의 본질 데이터 원소가 N개 일 때 알고리즘에 몇 단계가 필요할까? 빅 오가 진정 의미하는 것은 데이터가 늘어날.. 2023. 10. 19.
1부- 6장. 데이터 보호(단계 4/4) 1. 긴 함수 조각내기 2. 타입 코드 처리 3. 유사 코드 통합 4. 데이터 보호 데이터 캡슐화 데이터와 기능에 대한 접근을 제한하는 캡슐화에 중점을 둔다. 데이터 캡슐화란 변수와 메서드를 클래스로 옮기는 과정을 말한다. 이는 접근할 수 있는 지점을 제한하고 구조를 명확하게 하며 응집력을 더 명확하게 하는데 도움을 준다. 1) getter 와 setter를 사용하지 말 것 부울(Boolean)이 아닌 필드에 setter나 getter를 사용하지 말자. 문제점 -> getter: 캡슐화를 해제하고 불변속성을 전역으로 만들어 객체를 얻은 어느 곳에서나 호출하여 수정할 수 있게 만든다. setter: 데이터를 반환하도록 getter를 수정하고 이 데이터를 받는 곳에서도 이러한 구조를 .. 2023. 10. 14.
프로그래머스: 월간 코드 챌린지 시즌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.