Python

    파이썬(python) 백준 1966 : 프린터 큐

    collections 라이브러리에서 deque 를 큐로 사용하였습니다. 첫번째 요소를 추가/제거 하는 appendLeft(), popLeft() 메소드 지원 마지막 요소를 추가/제거 하는 append(), pop() 메소드 지원 모든 요소를 왼쪽/오른쪽 으로 회전시키는 rotate() 메소드 지원 Target(인쇄되는 순번이 궁금한 문서)의 index를 기억하기 위하여 튜플(우선순위, 0또는1) 형태로 변환해주었습니다. Target 만 1입니다. zip() 함수를 이용하여 [1,2,3] [0,0,0] => [(1,0), (2,0), (3,0)] 형태로 묶을 수 있습니다. 이렇게 안하고 enumerate() 로 index 를 집어넣고 index가 m 인 요소인지로 판별해도 됩니다. 우선순위 오름차순 정렬 ..

    파이썬 가변 인자 *, *

    가변 인자를 받을 때 * : positional arguments 순서 기반으로 동작 합니다. a,b,c = 함수(1,2,3) 이면 a=1, b=2, c=3 c,b,a = 함수(1,2,3) 이면 a=3, b=2, c=1 ** : keyword arguments key 기반으로 동작 합니다. a,b,c = 함수(c="3", b="2", a="1") 이면 a=1, b=2, c=3 a,b,c = 함수(a="1", b="2", c="3") 이면 a=1, b=2, c=3 둘이 함께 사용도 가능하지만, * 이 ** 보다 와야 합니다. def test(*args, **kwargs): print(args) print(kwargs) test('1', '2', '3', fourth='4', fifth='5') # 결과 #..

    코딩 테스트 풀이 - 2022 카카오 블라인드 1차 (1~4번 문제)

    코딩 테스트 풀이 - 2022 카카오 블라인드 1차 (1~4번 문제)

    2021/09/11(일) 14:00~19:00 진행되었던 카카오 블라인드 1차 코딩테스트 문제 풀이 게시물입니다. 코드나 문제를 상세히 올려도 되는지 모르겠어서 간략히만 해설 합니다. 제가 아직 실력이 부족하여 4번까지만 TC ALL AC를 맞아서 우선은 4번까지 해설합니다. 혹시나 문제가 되면 글 바로 내리겠습니다. 2022 KAKAO BLIND RECRUITMENT 진행 정보 2022 KAKAO BLIND RECRUITMENT 전체 전형 절차 및 일정 지원 접수 : 8월 19일(목) ~ 9월 6일(월) 17:00 1차 코딩 테스트 : 9월 11일(토) 2차 코딩 테스트 : 9월 25일(토) 2차 코딩테스트는 1차 코딩테스트 programmers.co.kr 1번 문제 핵심 키워드 : 구현, 딕셔너리 문..

    코딩 테스트 풀이 - 2021 카카오 블라인드 1차 (1~4번 문제)

    코딩 테스트 풀이 - 2021 카카오 블라인드 1차 (1~4번 문제)

    문제 해설 공식 사이트 2021 카카오 신입공채 1차 온라인 코딩 테스트 for Tech developers 문제해설 지난 2020년 9월 12일 토요일 오후 2시부터 7시까지 5시간 동안 2021 카카오 신입 개발자 공채 1차 코딩 테스트가 진행되었습니다. 테스트에는 총 7개의 문제가 출제되었으며, 개발 언어는 C++, Java, Jav tech.kakao.com 1번 문제 핵심 키워드 : 문자열 조작 + 구현 총 7가지의 단계를 단순 구현해내면 풀리는 문제다. 1단계 : str.lower() 를 통해 소문자로 변경 2단계 : string.digit(0~9) strings.ascii_lowercase(a~z) 를 알고 있으면 더 수월했을 것임. 3단계 : (주의) ..이 없어질 때 까지 ..을 .으로 ..

    파이썬(python) 알고리즘 - 최단 경로 (다익스트라, 벨만포드, 플로이드 워셜)

    파이썬(python) 알고리즘 - 최단 경로 (다익스트라, 벨만포드, 플로이드 워셜)

    양의 그래프에서 최소 비용 찾는 문제를 만났을 때 무슨 알고리즘을 쓸 지 판단이 어려운데요. 고민할 필요 없이 정확히 판단할 수 있도록 정리해 보았습니다. 판단 척도 항목 판단 척도 사용 알고리즘 가중치 +(방향), +(양방향), -(방향) 가능 -(양방향) 불가능 → -사이클 발생 플로이드 워셜, 벨만포드 +(방향), +(양방향) 가능 -(방향), -(양방향) 불가능 다익스트라 입력 최대 범위 V정점 200개 이하 (너무 작은 범위인 경우 무조건 플로이드 의심) 플로이드 워셜 (V+E)*log(V) 계산해서 2천만 이하 다익스트라 (V+E) 계산해서 2천만 이하 벨만포드 필요한 정보 한 노드에서 다른 모든 노드로의 최단 경로 비용 다익스트라, 플로이드 워셜, 벨만 포드 모든 노드에서 다른 모든 노드로의..

    파이썬(python) 알고리즘 - 최단 경로 (플로이드 워셜)

    파이썬(python) 알고리즘 - 최단 경로 (플로이드 워셜)

    플로이드 워셜 개요 항목 내용 언제 쓰는가? 양방향이면서 음/양 가중치 그래프에서 최단 경로 찾기 모든 노드에서 다른 모든 노드 까지의 최단 경로의 길이 계산 ex) A→B로 가는 경로가 있는지 확인 ex) A→??지점을 거쳐서 B,C로 각각 갈때 최소비용 노드 개수가 500개 이하 그래프 유형 양방향, 가중치 (음의 사이클 x) 가중치 양(o), 음(o) 시간 복잡도 O(V^3), (V

    파이썬(python) 가장 긴 증가하는 부분수열 (LIS)

    파이썬(python) 가장 긴 증가하는 부분수열 (LIS)

    가장 긴 증가하는 부분수열 (LIS) 알고리즘 분류 : 동적계획법 설명 [3,5,7,9,2,1,4,8] 과 같은 하나의 수열은 여러 부분수열로 나눌 수 있다. ex) [3,5], [5,7], [9,2,1,4], [1,4,8] 그 부분수열의 처음~끝까지 증가하는 횟수가 몇번이 되는지 count 하였을때 가장 횟수가 많은 부분수열을 구하는 문제다. [3,5] = 2회 [3,5,7] = 3회 [3,5,7,9] = 4회 [2,1,4] = 2회 아이디어 [3,5,7,1] 라는 수열의 LIS를 구해보자. 무지성 야생의 힘으로 덤벼보자. 모든 부분수열을 구해서 그 중에서 LIS를 구한다. [3], [5], [7], [1], [3,5], [5,7], [7,1] [3,5,7], [3,5,1], [5,7,1], [3,5,..

    파이썬(python) 라이브러리 - sphinx (docstirng 자동 문서화)

    파이썬(python) 라이브러리 - sphinx (docstirng 자동 문서화)

    python 코드 내에 작성한 docstirng을 자동으로 문서화 해주는 아주 강력한 라이브러리다. def 함수명(): ''' 내용 ''' → 주석안에 특정 규칙에 맞게 작성해둔 docstring을 파싱한다. 예시 아래 예시는 Goolge Style 의 docstring 이다. (Napoleon 이라는 확장을 사용하여 파싱해야 함) 기본 docstring 형태는 알아서 찾아보도록.. 나는 개인적으로 Google Style이 가독성이 좋아서 선호한다. def convert_worksheet_to_df(workbook, sheet_name=['Sheet'], include_index=False, include_column=False): """ Excel 파일에서 원하는 Sheet를 지정해 list(Dataf..

    파이썬 온라인 컴파일러 (trinket.io)

    trinket 이란? Trinket을 사용하면 모든 브라우저, 모든 장치에서 코드를 실행하고 작성할 수 있습니다. 로그인하거나 플러그인을 다운로드하거나 소프트웨어를 설치할 필요없이 즉시 작동합니다. 완료되면 변경 사항과 함께 코드를 쉽게 공유하거나 포함 할 수 있습니다. trinket은 무료이고, 임베디드 링크를 통해 자신의 웹 사이트에 게시가 가능하다. 심지어 Publish(배포)하여 APP 처럼 사용할 수도 있다. (배포하면 URL 생김) 가격 Plan 무료 버전으로도 충분하다 ! Java를 쓰려면 업그레이드 필요한 것 같다. 기능 Email : 온라인 IDE URL 주소와 Embed 주소를 보낸다. 네모 박스를 클릭하면 해당 주소로 접속한다. 소스 코드도 볼 수 있고 직접 실행도 가능하다. Link..

    파이썬(python) 백준 1987 : 알파벳

    1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 문제 내용 시간 제한 : 2 초 메모리 : 256 MB 공간 RxC 크기의 공간 (각 좌표마다 알파벳 쓰여있음) 등장인물 말 : (1,1) 위치에 놓여있음 동작 말을 상하좌우로 이동한다. 아래의 제약 조건 있음. 각 알파벳을 2번 이상 밟고 지나갈 수 없음. 입력 첫째 줄에 R과 C가 빈칸을 사이에 두고 주어진다. (1 ≤ R,C ≤ 20) 둘째 줄부터 R개의 줄에 걸쳐서 보드에 적혀 있는 C개의 대문자 알파벳들이 빈칸 없이 주어진다. 출력 첫째 줄에 말..