분류 전체보기 32

백준 1600번 : 말이 되고픈 원숭이(Python)

https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net # 원숭이는 k번만 말처럼 움직일 수 있고, 그 외에는 인접한 칸(상하좌우)으로 움직인다. dx_m = [0,1,0,-1] dy_m = [1,0,-1,0] dx_h = [-2,-2,-1,-1,1,1,2,2] dy_h = [-1,1,-2,2,-2,2,-1,1] # 격자판의 맨 위쪽 위에서 시작해서 맨 오른쪽 아래까지 가야한다. # 격자판이 주어졌을때 원숭이가 최소한 동작으로 갈 수 ..

알고리즘 2021.06.20

programmers 두 개 뽑아서 더하기(Python)

https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr def solution(numbers): answer = [numbers[i] + numbers[j] for i in range(len(numbers)-1) for j in range(i+1,len(numbers))] return list(set(sorted(answer))) 처음에는 다음과 같이 했는데 테스트케이..

알고리즘 2021.06.12

programmers 완주하지 못한 선수(Python)

https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr from collections import Counter def solution(participant, completion): A = Counter(participant) B = Counter(completion) answer = A-B return [x for x in answer.keys()][0]

알고리즘 2021.06.09

programmers 타겟 넘버(Python)

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr def dfs(count, cnt, numbers, target): global answer if count == len(numbers): if cnt == target: answer += 1 return dfs(count + 1, cnt + numbers[count], numbers, target) dfs(..

알고리즘 2021.06.06

programmers 키패드 누르기(Python)

https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr def solution(numbers, hand): answer = [] left,right = [1,4,7], [3,6,9] # 거리 계산을 위해 2차원 좌표로 변환 change_2d = {'*':(1,1),0:(1,2),'#':(1,3), 7:(2,..

알고리즘 2021.06.06

Factorization Machines 논문 리뷰

Factorization Machines논문을 흐름대로 정리해보려고 합니다. Abstract 1. SVM 모델과 factorization 모델의 장점을 결합한 Factorization machine을 소개한다. 2. SVM과 같이 Real Value(실수) Feature Vector를 활용한 General Predictor이다. 3. FM의 방정식은 linear time이다. - 비선형의 SVM과 달리 dual form으로의 변환이 필요하지 않고, 어떠한 support vector의 도움없이 모델 파라미터들을 직접적으로 추정할 수 있다. 4. 다른 일반적인 추천시스템 모델은 General prediction task에 적용할 수 없을 뿐 아니라, special input을 필요로한다. 하지만 FM은 fa..

추천시스템 2021.05.30

PreProcess. Konlpy 복합어 등록

프로젝트 주제에 따라서 복합어를 등록해야 할 필요가 있습니다. 예를 들어 '문제해결능력'을 konlpy의 여러 형태소 분석기를 이용해 명사 추출을 하면 아래와 같이 각각의 분석기 사전에 등록된 대로 추출이 됩니다. 또, 분석하는 도메인에 따라서 고유 명사를 지정해 줄 필요가 있기 때문에 이런 경우 Cutomized Konlpy를 사용할 수 있습니다. 다음과 같이 Konlpy 단어사전에는 영어가 없기때문에 가끔 영어 고유명사가 있을 경우 함께 분석하기가 어렵습니다. 1. 복합어 등록 예제 ckonlpy.tag를 통해서 단어사전에 분석에 맞게끔 추가했기 때문에 다음과 같이 결과가 나오는 것을 알 수 있습니다.

NLP 2021.05.30

백준 13335번 : 트럭(Python)

https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net from collections import deque def solution(): time = 0 while len(data)!=0 or sum(a)!=0: a[0] = 0 a.rotate(-1) if len(data)!=0 and (sum(a) + data[0])

알고리즘 2021.04.07

백준16918번 : 봄버맨(Python)

https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net from collections import deque r,c,n = map(int,input().split()) data = [list(input()) for _ in range(r)] dx = [1,0,-1,0] dy = [0,1,0,-1] q = deque() def bfs(q,data): while q: x,y = q.popleft() data[x][y] = '.' for i in range(4): nx,ny..

알고리즘 2021.03.31