전체 글 21

[Spring] IntelliJ checkstyle gradle 적용

새로 Spring 프로젝트를 진행하면서, 코딩 컨벤션을 위한 checkstyle을 프로젝트에 적용해보고자 했다. 코딩 컨벤션은 naver checkstyle rules를 다운로드받아 프로젝트의 root 디렉토리에 넣어주었으며, 규칙을 수정하지 않고 사용하기 때문에 아래 부분을 파일에서 삭제하였다. // 미삭제시 다음과 같은 오류 메세지 발생 Caused by: org.xml.sax.SAXException: Property ${suppressionFile} has not been set com.puppycrawl.tools.checkstyle.api.CheckstyleException: Property ${suppressionFile} has not been set IDE와 연동하기 전에 독립실행(참고)을..

Spring 2021.12.14

GCN - PyG, DGL에서의 GCNConv

Deep Graph Library의 graphconv.py와 pytorch geometric의 gcn_conv.py에는 다음과 같은 주석이 있습니다. DGL과 PyG의 GCN convolution layer는 Semi-Supervised Classification with Graph Convolutional Networks 논문에서 소개되고 있습니다. l+1번째 layer의 hidden state는 graph의 adjacency matrix A에 self connection을 추가한 행렬 A' 를 node 자신을 포함한 diagonal degree matrix를 이용하여 normalization을 진행하고, l번째 hidden state matrix와 l번째 weight parameter matrix를 ..

AI, ML 2021.09.29

[프로그래머스] 2019 카카오 겨울 인턴십 (Python) (징검다리 건너기, 호텔 방 배정, 불량 사용자, 튜플, 크레인 인형뽑기 게임)

https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): from collections import deque bucket = deque([]) ans = 0 for move in moves: for row in range(len(board)): if board[row][move-1] == 0: continue bucket.append(board[row][move-1]) board[row][mo..

[프로그래머스] 2020 카카오 인턴십 (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): pos = {1: (0, 0), 2: (0, 1), 3: (0, 2), 4: (1, 0), 5: (1, 1), 6: (1, 2), 7: (2, 0), 8: (2, 1), 9: (2, 2), 0: (3,..

[프로그래머스] 2021 카카오 채용연계형 인턴십 (Python) (시험장 나누기, 미로 탈출, 표 편집, 거리두기 확인하기, 숫자 문자열과 영단어)

https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr def solution(s): dic = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5', 'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'} for k in dic.keys(): s = s.replace(k, dic[k..

[프로그래머스] 2021 kakao blind recruitment (Python) (매출 하락 최소화, 카드 짝 맞추기, 광고 삽입, 합승 택시 요금, 순위 검색, 메뉴 리뉴얼, 신규 아이디 추천)

https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr def solution(new_id): import re new_id = new_id.lower() new_id = re.sub("[^a-zA-Z0-9_\-.]", "", new_id) new_id = re.sub("(\.)+", ".", new_id) new_id = new_id.strip('.') new_id = 'a' if new_id == '' e..

[프로그래머스] 2020 kakao blind recruitment (Python) (블록 이동하기, 외벽 점검, 기둥과 보 설치, 가사 검색, 자물쇠와 열쇠, 괄호 변환, 문자열 압축)

https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr def solution(s): ans = len(s) for i in range(1, len(s)//2+1): b = '' cnt = 1 r = '' for j in range(len(s)//i): if b == s[i*j:i*(j+1)]: cnt += 1 elif cnt == 1: r += b b = s[i*j:i*(j+1)] else: r += str..