반응형

전체 글 175

[BOJ/백트래킹] N과 M (3)

문제 링크 : https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 n,m = map(int,input().split()) answer = [0]*m def backtracking(L,s): # 길이가 m이라면 출력 if L == m: for j in answer: print(j, end= " ") print() return # 1부터 n+1까지 반복문 for i in range(1,n+1): answer[L] = i backtracking(..

알고리즘 2023.05.23

[BOJ/백트래킹] N과 M (2)

문제링크 : https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 n,m = map(int,input().split()) answer = [0]*m def backtracking(L,s): # 길이가 m이라면 출력 if L == m: for j in answer: print(j,end = " ") print() return # s부터 n+1까지 반복문 for i in range(s,n+1): answer[L] = i # answer의 인덱스 ..

알고리즘 2023.05.23

[BOJ/완전탐색] 1018 체스판 다시 칠하기

문제링크 : https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 n, m = map(int, input().split()) cnt = [] board = [list(input()) for _ in range(n)] for a in range(n - 7): for b in range(m - 7): # 8*8로 자르기 위해, -7해준다 w_index = 0 # 흰색으로 시작 b_index = 0 # 검은색으로 시작 for i in rang..

알고리즘 2023.05.23

[네이버 부스트캠프 AI Tech 5기] 11주차 회고록

DKT 대회를 진행한지 어느덧 3주차이다! 어느정도 모델의 성능이 고도화 됐지만 검증셋과 대회 리더보드에서의 성능차이가 많이 차이나는 편이다. 이를 해결할려고 많은 시도를 해보았지만 유의미하게 개선하지 못해서 아쉽다. 아직 한주가 남았고 이제는 단일 모델의 성능보단 팀 전체의 모델을 앙상블해서 좋은 성능을 이끌어보자. 무엇보다 SWEEP이랑 Github을 많이 사용해볼 수 있어서 좋았음 Fact(사실 : 무슨 일이 있었나?) DKT 대회에서 ELO 함수를 이용한 피쳐엔지니어링과 KFOLD를 통해 성능 향상을 이룸. LGBM에서 wandb를 돌아갈 수 있게 코드 구현 → 성호형이 다시 수정해줌(팀원 모두가 돌아갈 수 있게) 개인적인 실험으로 SHAP 라이브러리를 사용해봄 → 모델의 피쳐 설명력을 보여주는 ..

[BOJ/그리디] 1931 회의실배정

문제 링크 : https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 n = int(input()) room = [] for _ in range(n): room.append(list(map(int,input().split()))) # 회의 종료시간으로 정렬 이후 시작시간으로 정렬(같은 시각에 종료하는데 시작시간이 빠른것이 먼저 오기위해 room.sort(key = lambda x : (x[1],x[0])) # 첫번째 회의실은 끝나는 시간이 제일 작은 회의실로 고정 time = room[0][1] answer = 1 # 다음 회의실의 시간시간이 현재 종료시간보다 ..

알고리즘 2023.05.15

[BOJ/그리디] 13305 주유소

문제 링크 : https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 풀이 #리스트 생성 city_num = int(input()) liter_lst = list(map(int,input().split())) cost_lst = list(map(int,input().split())) #처음 시작 비용 설정 min_liter = cost_lst[0] answer = 0 #휴게소에서 더 작은 코인(비용)이 생기면 갱신 아니면 기존 비용으로 ..

알고리즘 2023.05.15

[BOJ/그리디] 1541 잃어버린 괄호

문제 링크 : https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이 sik = input() # 마이너스 부호로 split sik = sik.split('-') # 쪼개진 식들을 연산후 리스트에 넣기 answer = [] for i in sik: # +로 묶였을 경우 쪼개주고 리스트로 구분 -> sum해서 한번에 계산, 단독이라면 그냥 sum res = list(map(int, i.split('+'))) answer.append(str(s..

알고리즘 2023.05.15

[BOJ/그리디] 11047 동전 0

문제 링크 : https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 풀이 n,k = map(int,input().split()) answer = 0 coin_list = [] # n번 반복 for i in range(n): coin_list.append(int(input())) # 순서바꾸기 coin_list = coin_list[::-1] for j in coin_list: if k/..

알고리즘 2023.05.15

[네이버 부스트캠프 AI Tech 5기] 10주차 회고록

Level2 시작한지 2주차가 되었다. LGBM 모델을 베이스라인으로 EDA, Feature Engineering을 하느라 한주가 빠르게 지나갔다. 단순한 하나의 함수를 구현하는데 시간이 많이 소요되고 그만큼의 성능은 나오지 않는다. 그래도 계속해서 오르는 만큼 추가 피쳐를 만들어보고 GBM모델뿐만 아니라 딥러닝 모델도 사용해보도록 하자. 추가로 WADNB나 깃헙으로 시작했는데 아직은 미숙하지만 LEVEL1의 부족한 점을 채우고 있다는 것에 만족 중! Fact(사실 : 무슨 일이 있었나?) 팀원들마다 각자 공부하고 싶은 모델을 선택하고 모델 구조와 데이터로드, 코드분석까지 하기로 함 저번주에 얘기한 Fast API 스터디를 진행 오피스아워 시간에 금융 도메인의 추천시스템에 대해서 배울 수 있었음 두런두런..

[ML] 머신러닝 프로젝트 사이클

문제정의의 중요성 머신러닝 알고리즘, 개발 능력도 중요하지만 근본적인 사고능력도 중요 HOW보다 WHY에 집중 문제해결 FLOW 문제를 해결하기 위한 Flow 현상 파악 목적, 문제 정의 => 계속 생각하기, 쪼개서 생각하기 프로젝트 설계 Action 추가 원인 분석 1. 현상 파악 어떤 현상이 발견되었는가? 현재 상황을 파악함 어떤 일이 발생하고 있는가? 해당 일에서 어려움은 무엇인가? 해당 일에서 해결하면 좋은 것은 무엇인가? 추가적으로 무엇을 해볼 수 있을까? 어떤 가설을 만들어 볼 수 있을까? 어떤 데이터가 있을까 2. 문제 정의 무엇을 해결하고 싶은가? 무엇을 알고 싶은가? 문제 정의는 결국 현상을 계속 쪼개고, 그 문제를 기반으로 어떤 어려움을 겪고 있는지를 파악함 데이터로 할 수 있는 일을 ..

Study/AI 2023.05.07
반응형