전체 글

전체 글

    Atom(아톰 에디터)에서 사용하는 emmet 패키지

    Atom 에디터의 단축키는 이곳을 참고하면 된다. 출처 : https://atom.io/packages/emmet emmet Emmet – the essential tool for web developers atom.io html을 처음 공부할 때 Atom 에디터에서 emmet 패키지를 이용하면 훨씬 수월해진다. emmet에서 사용하기 좋은 문법들에 대한 소개를 아래 링크로 올려놓았다. 출처 : https://docs.emmet.io/abbreviations/syntax/ Abbreviations Syntax Abbreviations Syntax Emmet uses syntax similar to CSS selectors for describing elements’ positions inside gene..

    (Python) 백준 1094번 : 막대기

    출처 : https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대를 만들려고 한다. 막대를 자르는 가장 쉬운 방법은 절반으로 자르는 것이다. 지민이는 아래와 같은 과정을 거쳐서 막대를 자르려고 한다. 지민이가 가지고 있는 막대의 길이를 모두 더한다. 처음에는 64cm 막대 하나만 가지고 있다. 이때, 합이 X보다 크다면, www.acmicpc.net 알고리즘 분류 수학 시뮬레이션 (Python) 백준 1094번 : 막대기¶출처 : https://www.acmicpc.net/pr..

    (Python) 이진 탐색(Binary Search) 구현하기

    (Python) 이진 탐색(Binary Search)¶ Binary Search : 이진 탐색, 이분 탐색, 또는 이원 탐색 서로 다른 정수들을 원소로 갖고 있는 정렬되어 있는 리스트가 있다고 가정하자. 특정 정수값 searchnum이 리스트에 존재하는지 알고싶다. 만일 searchnum이 리스트에 존재한다면 list[i] = searchnum인 인덱스 i를 반환하고, 그렇지 않다면 -1을 반환한다. 순차적으로 탐색하는 것보다 훨씬 효율적이다 (리스트가 정렬되어 있을 경우에 대해서만) left: 탐색하고자 하는 배열의 왼쪽 right: 탐색하고자 하는 배열의 오른쪽 middle: (left+right)/2 list[middle]과 searchnum을 비교하여 다음의 세가지 경우 중 하나를 선택한다. se..

    (Python) [2020카카오공채] 외벽 점검

    출처 : https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 | 프로그래머스 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우 손상될 수도 있는 취약한 지점들이 있습니다. 따라서 내부 공사 도중에도 외벽의 취약 지점들이 손상되지 않 programmers.co.kr 1. 제한사항 1

    (Python) [2020카카오공채] 자물쇠와 열쇠

    출처 : https://programmers.co.kr/learn/courses/30/lessons/60059?language=python3 코딩테스트 연습 - 자물쇠와 열쇠 | 프로그래머스 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr Hint. 1. 2차원 배열로 이루어진 열쇠를 시계방향으로 90도 회전하려면? 2. 자물쇠와 padding [2020 카카오 공채 문제] 자물쇠와 열쇠¶ In [1]: import copy In [2]: # key를 90도 회전시키기 def rotate(key): rotate_key = copy.deepcopy(key) y = len(key) - 1 for..

    [Python/에러] : maximum recursion depth exceeded in comparison

    파이썬에서 maximum recursion depth exceeded in comparison 에러가 발생하는 경우 1. 원인 파이썬에서는 재귀 호출 횟수를 제한하고 있다. 2. 어떤 상황에서 일어나는가? default값으로 설정되어 있는 재귀 호출 횟수(약 1000번?)을 넘어서면 에러가 발생한다. 3. 어떻게 해결하는가? 재귀 호출 횟수를 늘려주면 된다. import sys sys.setrecursionlimit(10**7) 처럼, 임의로 호출 횟수를 늘려주자.

    (Python) 백준 2455번 : 지능형 기차

    출처 : https://www.acmicpc.net/problem/2455 2455번: 지능형 기차 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 내린 사람 수 www.acmicpc.net 알고리즘 분류 : 시뮬레이션 (Python) 백준 2455번 : 지능형 기차¶알고리즘 분류 : 시뮬레이션 출처 : https://..

    (Python) 너비 우선 탐색(BFS) 구현하기

    (Python) 너비 우선 탐색(BFS) 구현하기¶ In [1]: from IPython.display import Image Image("img/bfs_graph.png") ## code안에서 그림이 나오게 할 떄 # ![title](img/bfs_graph.png) ## markdown안에서 그림이 나오게 할 때 Out[1]: DFS에서는 반복문(iteration), 재귀(recursive)적인 방법으로 구현했었는데 BFS의 경우 반복문(iteration)을 이용해서 구현을 해야 한다. 반복문(iteration) DFS : stack 이용 DFS 방문 순서 : A B D E F C G H (왼쪽 노드부터 방문한다고 가정할때) BFS : queue 이용 BFS 방문 순서 : A B C D E G H F..

    (Python) 깊이 우선 탐색(DFS) 구현하기

    깊이 우선 탐색(DFS) 구현하기¶ In [1]: graph = {'A':['B','C'], 'B':['A','D','E'], 'C':['A','G','H'], 'D':['B'], 'E':['B','F'], 'F':['E'], 'G':['C'], 'H':['C']} 반복문(iteration)을 이용해서 DFS 구현하기¶dfs는 stack을 이용해서, bfs는 queue를 이용해서 구현할 수 있는..

    (Python) 백준 17779번 : 게리맨더링2

    출처 : https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름도 재현시로 변경했다. 이번 선거에서는 최대한 공평하게 선거구를 획정하려고 한다. 재현시는 크기가 N×N인 격자로 나타낼 수 있다. 격자의 각 칸은 구역을 의미하고, r행 c열에 있는 구역은 (r, c)로 나타낼 수 있다. 구역을 다섯 개의 선거구로 나눠야 하고, 각 구역은 다 www.acmicpc.net 백준 / 17779번 / 게리맨더링 2¶ In [8]: # for 블로그 포스팅 from IPython.core.dis..

    [Python/내장함수] 예외 처리하기 (try / except문)

    [Python] 예외 처리하기¶ 일단 코드부터 실행하고, 에러가 발생하면 그때 처리한다! 코드와 프로그램 논리를 추가해서 나쁜 일이 생기지 않도록 사전에 막기보다는, 파이썬의 예외 처리 메커니즘을 이용해서 일단 에러가 발생하도록 놔두고, 에러가 발생하면 이를 발견해서 복구할 수 있는 기회를 제공한다 발생할 수 있는 모든 에러를 처리하는 코드를 만들려면 코드 작성에 많은 시간이 걸리기 때문에 예외처리는 많은 도움이 된다. 보호해야할 필요가 있는 부분은 어디일까? 고민! 런타임에 발생하는 에러에 상관없이 그것을 무시하거나 에러 메세지를 출력하도록 하므로 모든 에러가 처리된다. 범용적이라 좋긴 한데.. 실제로 신경써야 하는 에러는 IOError와 ValueError이다. 프로그램을 개발할 때 실제로 일어나는 ..

    [Python/os] txt파일 읽어오기

    [Python] 파일 읽어오기¶ 파이썬은 어떻게 파일에서 데이터를 읽어올까? 파일은 단지 여러 라인으로 구성된 텍스트이다. 파이썬의 기본 입력 메커니즘은 "라인"을 기반으로 한다. 데이터를 텍스트 파일에서 프로그램으로 읽어 들이면 한 번에 한 라인씩 가져온다. In [2]: import os os.getcwd() # 현재 디렉터리 확인 Out[2]: 'C:\\Users\\Juhee\\jupyter_workspace' In [3]: os.chdir('./Python') # 데이터 파일이 있는 폴더로 이동 os.getcwd() # 현재 디렉터리 확인 Out[3]: 'C:\\Users\\Juhee\\jupyter_workspace\\Python' 백준 사이트에서 파이..

    [Python/내장함수] range와 enumerate 함수

    [Python] range(), enumerate()¶ range()함수에 대해서 알아보자¶ In [1]: # range(start, stop, step) # 필요에 따라 주어진 범위의 일련의 숫자를 생성하는 나열자를 반환한다. print(range(10)) print(type(range(10))) range(0, 10) In [2]: list(range(10)) Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [3]: tuple(range(10)) Out[3]: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) In [4]: set(range(10)) Out[4]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} In [5]: for i in range(10): ..

    [Python/내장함수] isinstance 함수

    [python] isinstance() : 식별자가 특정 형의 데이터를 갖고 있는지 확인한다.¶ In [1]: a_list = [1,2,3,4,5] # a_list는 리스트인가? isinstance(a_list, list) Out[1]: True In [2]: a_string = "what is your name?" # a_string은 str인가? print(isinstance(a_string, str)) #a_string은 int인가? print(isinstance(a_string, int)) True False In [3]: a_int = 3 # a_int는 int인가? print(isinstance(a_int, int)) # a_int는 float인가? print(isinstance(a_int, ..

    (Python) 백준 14503번 : 로봇 청소기

    출처 : https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음 www.acmicpc.net 백준 14503번 : 로봇 청소기¶ 시뮬레이션 In [1]: N,M = map(int, input().split()) #..