일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- special string again
- LCS
- boj 11657
- 2025 프로그래머스 코딩챌린지 1차예선
- gas
- boj 1074
- 지게차와 크레인
- DirectX12
- 브루트포스
- string construction
- lock free stack
- PCCE
- ice cream parlor
- pcce 기출문제 풀이
- 프로그래밍공부
- count triplets
- boj 1717
- the maximum subarray
- lock based stack
- lock based queue
- pccp 기출문제 풀이
- find the running median
- c++
- making anagrams
- boj 6443
- find the town judge
- dp
- DirectX
- the longest increasing subsequence
- two characters
- Today
- Total
목록전체 글 (119)
오구의코딩모험

[코딩테스트 고득점 KIT - 스택/큐] 리스트를 인덱스 순서대로 검사하며 중복이 아닐 경우에만, 정답 리스트에 추가한다. def solution(arr): answer = [arr[0]] for idx in range(len(arr)): if answer[-1] != arr[idx]: answer.append(arr[idx]) return answer

[코딩테스트 고득점KIT - 해시] 처음엔 combination 을 이용하여 풀었지만, 정확성 테스트 케이스는 모두 통과하나 효율성 테스트를 시간초과로 통과하지 못하였다. 의상의 종류를 담기 위해 clo 리스트를 생성하고 값을 넣는다. Counter 라이브러리를 이용하여 의상 종류별 count를 해준다. ex) Counter({ headgear : 2, eyewear : 3, face : 1}) 여기서 각 카운트 값을 +1 해준 후, reduce 함수를 통해 각 카운트 값을 전부 곱해준다. 그리고 -1 까지.. 이유는 다른 분의 설명을 참고하도록 하겠다.. 만약에 옷의 종류가 1개라고 해봅시다. 개수는 a개입니다. 그럼 총 a가지의 경우가 있겠죠? 종류가 2개가 되고 각각의 옷의 개수는 a, b개입니다...

[코딩테스트 고득점KIT - 해시] 어떤 번호가 다른 번호의 접두어인 경우, False ex) "119" 는 "1195524421"의 접두어, return False 그렇지 않은 경우, True phone_book 리스트 값을 오름차순으로 정렬 해준다면, 유사한 숫자들끼리 배치가 될 것이다. ex) ["119", "97674223", "1195524421"] → ["119", "1195524421", "97674223"] index가 낮은 값은 바로 뒤인 index+1 값과 유사하지만 실제 수치는 낮다. 그러므로 서로 맞닿는 index 값들만 비교를 해준다. ex) 1) phone_book[0], phone_book[1] 비교 2) phone_book[1], phone_book[2] 비교 반복문으로 비교..

[코딩테스트 고득점KIT - 해시] from collections import defaultdict def solution(genres, plays): answer = [] # 장르, 재생 횟수 딕셔너리 생성 및 초기화 play_dict = defaultdict(int) genre_dict = defaultdict(list) # 장르, 재생 횟수 딕셔너리 값 추가 for idx in range(len(genres)): play_dict[genres[idx]] += plays[idx] genre_dict[genres[idx]].append(plays[idx]) # 재생 횟수의 합 딕셔너리 내림차순 정렬 후, # 재생 횟수가 가장 높은 장르부터 장르 딕셔너리에 대입하여 재생 횟수를 내림차순으로 저장한다. #..

https://leetcode.com/problems/add-two-numbers/ Add Two Numbers - 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

저번 포스팅에서는 합격/불합격과 같은 이진 분류 문제를 푸는 로지스틱 회귀에 대해 알아보았다. 오늘은 이진 분류를 넘어서 3개 이상의 선택지 중에서 하나를 고르는 다중 클래스 분류 문제를 위한 소프트맥스 회귀(Softmax regression)에 대해 알아보자! 다중 클래스 분류(Multi-class Classification) 로지스틱 회귀에서는 시그모이드 함수를 사용하여 입력값에 대한 출력을 0과 1사이의 값으로 출력해준다. 따라서 "0.5가 넘으면 합격, 넘지 못하면 불합격" 과 같이 판단 또한 해줄 수 있었다. 하지만 합/불이 아닌 A,B,C 학점으로 나누어 준다고 할 때 시그모이드 함수를 사용한다면, A 학점을 받을 확률, B 학점을 받을 확률, C 학점을 받을 확률을 각각 출력해줄 것이며 그 ..

오늘은 선형 회귀에 이어 로지스틱 회귀(Logistic Regression)에 대해 공부하자! 앞서 공부했던 한 개 이상의 독립 변수 x와 y의 선형 관계를 모델링하는 선형 회귀와 달리 로지스틱 회귀는 시험의 합/불 여부, 메일이 스팸인지 아닌지 와 같이 두 개의 선택지 중 정답을 고르는 이진 분류(Binary Classification) 문제를 풀기 위한 알고리즘이다. 예를 들어보자 60점 이상을 받으면 합격(=1)인 시험이 있다. 그럼 자연스럽게 60점 미만은 불합격(=0)일 것이다! 그래프로 표현하니 알파벳 S 형태로 표현되어 있다. 만약 y=wx+b의 직선을 사용할 경우, y값이 음의 무한대부터 양의 무한대와 같은 큰 수들도 가질 수 있어 0과 1값만 있는 분류에는 적합하지 않다. 하지만 우리가 ..

[코딩테스트 고득점KIT - 해시] 문제 설명이 긴데 요악하자면, 박사님이 폰켓몬을 나한테 절반 떼어 주시는데 난 절반을 가져갈 때, 많은 종류의 폰켓몬이 들어있음 한다. 즉 N개(항상 짝수)의 폰켓몬이 있다면, 난 N/2 마리를 데려갈 수 있다. 몇 종류의 폰켓몬이 있는지 알기 위해 set로 중복을 제거 해준다. nums = 폰켓몬 종류의 수, cnt = 내가 데려갈 폰켓몬 수 데려갈 폰켓몬 보다 종류가 적다면 종류의 수가 곧, 최대 종류의 수가 더 크다면 내가 데려갈 폰켓몬 수가 최대일 것이다.

[코딩테스트 고득점KIT - 해시] #주석# 에 쓰여있는 반복문으로 완주한 선수를 참가자 리스트에서 하나씩 빼는 코드를 작성했더니 효율성 테스트에서 모두 실패가 나온다. 문제 카테고리 해시기 때문에 Counter를 호출해서 원소의 빈도수를 빼주는 방식으로 다시 구현. Counter 말고 list에 있는 count를 사용해도 될 것 같다. list에 count가 있는지 몰랐다면 참고! python 문서 - list

딥 러닝(Deep Learning)은 머신 러닝(Machine Learning)의 특정한 한 분야로서 인공 신경망(Artificial Neural Network)의 층을 연속적으로 깊게 쌓아올려 데이터를 학습하는 방식이다. 인공 신경망이 뭔데? 초기의 인공 신경망인 퍼셉트론를 예시로 천천히 알아보자 퍼셉트론(Perceptron) [좌측 그림] 실제 뇌를 구성하는 뉴런의 동작은 신호를 받고 이 신호가 일정치 이상의 크기가 되면 신호를 전달해주는 구조라고 한다. [우측 그림] x는 입력값(Input), w는 가중치(Weight), y는 출력값(Output) 퍼셉트론은 뉴런과 유사하게 가중치의 곱의 전체 합이 임계치(threshold)를 넘으면y에 1을 출력, 그렇지 않으면 0을 출력한다. 위의 구조는 값을 ..