Programming/Python
반복이 가능한 원소가 문자 혹은 문자열인 튜플, 리스트, 딕셔너리 같은 것들을 join을 사용하여 원소들 사이사이에 원하는 문자열을 넣어줄 수 있다. 사용예시 mylist = ['pine','apple','pineapple'] print(','.join(mylist)) # pine,apple,pineapple mytuple = ('iPhone', 'iPod', 'iPad') print(''.join(mytuple)) # iPhoneiPodiPad mydict = {'a':1, 'b':2, 'c':3} print('^'.join(mydict)) # a^b^c
[2020 kakao blind_Python3] 5번 기둥과 보 설치 문제보기 문제 풀러가기 나의 풀이 접근 시뮬레이션 문제로서 문제에서 제시하는 조건에 따라 기둥이나 보를 설치 및 삭제를 하면 되는 문제였다. 처음에는 조건들이 살짝 까다로워 보이지만 특정 좌표가 기둥이 있는지 또는 보가 있는지 확인하는 함수와 각 기둥과 보가 조건에 위배되지는 않는지 확인해주는 함수를 만들어 쉽게 풀 수 있었다. 풀이 코드 # 기둥 설치 def add_col(wall,x,y): if y==0: # 바닥일 경우 wall[y][x][0] = 1 else: # 바닥이 아닐 경우 if (iscol(wall,x,y-1)) or (isbeam(wall,x,y)) or (isbeam(wall,x-1,y)): wall[y][x][0]..
[2020 kakao blind_Python3] 4번 가사 검색 문제설명 친구들로부터 천재 프로그래머로 불리는 프로도는 음악을 하는 친구로부터 자신이 좋아하는 노래 가사에 사용된 단어들 중에 특정 키워드가 몇 개 포함되어 있는지 궁금하니 프로그램으로 개발해 달라는 제안을 받았습니다. 그 제안 사항 중, 키워드는 와일드카드 문자중 하나인 '?'가 포함된 패턴 형태의 문자열을 뜻합니다. 와일드카드 문자인 '?'는 글자 하나를 의미하며, 어떤 문자에도 매치된다고 가정합니다. 예를 들어 "fro??"는 "frodo", "front", "frost" 등에 매치되지만 "frame", "frozen"에는 매치되지 않습니다. 가사에 사용된 모든 단어들이 담긴 배열 words와 찾고자 하는 ..
[Python] Trie 구조 Trie란? 원래 Trie는 탐색을 뜻하는 retrieval에서 중간 글자인 trie에서 유래가 되었다고합니다. Tree의 일종으로 Prefix tree라고 부르는 사람도 있다고한다. Prefix로 보면 좀 더 직관적으로 이해가 가능하다. 예를들면, IP주소를 routing table에 저장할때에도 앞에 오는 bit들부터 정해놓고 routing을 해주는 것과 비슷하다고 볼 수 있다.아래 그림을 보면 Trie구조를 좀 더 쉽게 이해를 할 수 있다. _(아래 그림에서 '*'은 문자열의 끝을 나타낸 것이다.) Trie구조를 왜? 사용할까 Trie구조는 우선 탐색의 속도가 빠르다는 것입니다. 문자열의 길이를 m이라할때, 탐색의 시간복잡도를 계산해보면 O(m)이 되므로..
[Python] MinMax(Normalization) 데이터를 처리하면서 각기 다른 데이터들이 범위가 다른 경우가 존재한다. 이러한 경우 정규화,표준화 등 데이터 전처리 과정을 통하여 범위를 같게 만들어서 처리해주는 방법이 있다. 이번 글에서는 이러한 전처리 과정들 중 MinMax에 대하여 정리해보려한다. MinMax MinMax는 데이터를 일정한 범위로 오게끔 scaling을 해주는 방법이다. 대표적으로는 0과1로 변환을 하여 [0,1]을 많이 사용한다고 한다. MinMax 공식 원래의 값에 최솟값을 뺀 후 최댓값과 최솟값의 차이로 나눠준다. 이렇게 하면 모든 값들이 0 또는 1의 값을 가지게 된다. python코드로 보면 아래와 같다. import numpy as np Xs = [12, 34, 55..
[Python] 월별 감기 환자 수 데이터 다뤄보기 이번 글에서는 월별로 감기를 걸리는 환자 수의 데이터를 가지고 아주 간단히 데이터를 조작하여 그래프를 그려보고 감기를 자주 걸리는 월을 찾아보고자 합니다. 데이터 전처리하기 질병 세분류(4단 상병) 통계자료를 보면 질병에 따라 월별로 내원한 환자 수에 대한 정보를 얻을 수 있습니다. 저는 KCD코드가 'J00'인 '급성 비인두염' 즉, 감기라 불리는 질병에 대해 16년 1월 ~ 18년 12월까지 총 3년치의 데이터를 조회해보았습니다. (한번에 최대 3년치까지 조회가 가능하다고 합니다.) 조회를 하면 그래프들도 나오지만 밑에 보면 엑셀파일을 받을 수 있습니다. 그럼 엑셀 파일을 받아보겠습니다. 여기서 원래는 날짜들이 '..
[Python] Json파일 다루기 프로젝트를 진행중에 데이터를 json형식으로 다루어야 될 일이 생겼다. json이란, JavaScript Object Notation의 약자로, 데이터 교환 포맷 중 하나입니다. xml에 비해 경량화되어 있다는게 특징입니다. python에서 json파일 열어서 읽기 아래와 같은 json파일이 './test.json'의 경로에 있다고 해보자. { "F09": { "number": "1" }, "F072": { "number": "2" } } python코드에서 아래와 같이 작성하면 json파일을 읽어올 수 있다. import json with open('./test.json','r') as f: # 'r'은 읽기모..
[2020 kakao blind_Python3] 3번 자물쇠와 열쇠 문제설명 고고학자인 튜브는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 M x M 크기인 정사각 격자 형태로 되어 있습니다. 자물쇠에는 홈이 파여 있고 열쇠 또한 홈과 돌기 부분이 있습니다. 열쇠는 회전과 이동이 가능하며 열쇠의 돌기 부분을 자물쇠의 홈 부분에 딱 맞게 채우면 자물쇠가 열리게 되는 구조입니다. 자물쇠..
[2020 kakao blind_Python3] 2번 괄호 변환 문제 설명 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 콘은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의 '(' 와 ')' 로만 이루어진 문자열이 있을 경우, '(' 의 개수와 '..