Posts
학습 일기장
Cancel

문제 10610 - 30 접근 그리디 알고리즘이다. 우선 30의 배수가 되려면 3의 배수인 동시에 10의 배수가 되어야 한다. 따라서, 3의 배수를 만족하기 위해 각 자리 수의 합이 3으로 나누어 떨어지는지 확인하고, 0이 한개라도 존재하는지 확인한다. 조건을 모두 만족한 경우에, 작은 수부터 뒷자리에 채워넣으면 된다. 코드 ...

Contents 추천 시스템 기본 용어 Overview Candidate Generation Embedding Space Similarity Measures 추천 시스템 기본 용어 Item(do...

문제 17608 - 막대기 접근 스택을 활용하면 간단하다. 오른쪽에서 본다고 했으니 배열의 끝에서부터 숫자를 하나씩 꺼낸다. 현재까지 꺼낸 값들 중 max값을 계속 업데이트하며, 현재 max보다 크다면 정답에 +1을 해준다. 코드 파이썬 코드 import sys input = sys.stdin.readline n = in...

문제 1987 - 알파벳 접근 사실 정확한 BFS는 아니다. 약간 변형을 했다. 이 문제는 여태 거쳐온 곳과 알파벳이 같은 곳에 가지못한다. 따라서 여태 거쳐온 곳에 대한 정보가 필요하다. 따라서 큐에 현재 좌표와 만들어진 단어를 함께 저장한다. 그렇게 했더니 시간초과가 났다. 고민을 해봤는데, 따로 visit 배열을 두고 방문체크를...

Contents 모델 평가 하이퍼파라미터 튜닝 그리드 탐색(Grid Search) 랜덤 탐색(Random Search) 베이지안 최적화(Bayesian Optimization) 과적합(Over-Fitting), 과소적...

문제 1759 - 암호 만들기 접근 사전 순으로 정렬한 후 순서에 맞게 중복없이 l개를 선택한다. 이게 정답 후보가 된다. 이제 정답 후보 중에 주어진 규칙인 자음, 모음의 개수를 확인하고 맞는 것을 최종적으로 출력한다. 코드 파이썬 코드 def roleCheck(arr, vowel): minV = 1 mi...

문제 2217 - 로프 접근 모든 로프에 걸리는 중량이 같다는 것이 핵심이다. 즉 n개의 로프를 사용했을 때 들 수 있는 최대 무게는 n개의 로프중 최소값 * n이다. 코드 파이썬 코드 n = int(input()) arr = [int(input()) for _ in range(n)] arr.sort(reverse = T...

문제 1094 - 막대기 접근 문제를 쉽게 보면, 결국 주어지는 n을 2의 제곱수들의 합으로 표현하는 방법 중 가장 적은 항의 개수를 묻는 것이다. 예를 들어, 23은 16+4+2+1로 표현할 수 있고, 이 것보다 짧게 표현하는 것은 불가능하다. 코드 파이썬 코드 n = int(input()) nowN = 64 ans =...

문제 2455 - 지능형 기차 접근 한 줄씩 입력 받는 동시에 현재 기차에 남은 인원을 연산한다. 그리고 최대값을 구한다. 코드 파이썬 코드 ans = 0 nowCnt = 0 for _ in range(4): outCnt, inCnt = map(int, input().split()) nowCnt = nowCn...

문제 5543 - 상근날드 접근 입력받은 배열을 버거와 음료수로 분리하고, 각각 최소값을 구해주면된다. 그 후 두 개를 더하고 50을 빼면 정답. 코드 파이썬 코드 arr = [int(input()) for _ in range(5)] burger = min(arr[:3]) drink = min(arr[3:]) sets = ...