본문 바로가기
파이썬으로 기상청 일기예보와 날씨 API 사용하기 기상청에서 제공하는 날씨 API를 사용해보려고 한다. 현재 내가 다니고 있는 회사는 모임플래폼을 운영하고 있다. 어플에서는 모임을 만들 수 있는데 날짜와 시간, 장소를 적는다. 그러면 모임을 하는 날이 일기예보가 제공되는 날이라면 날씨를 알려주면 모임 날을 바꾸거나 픽스하는데 도움이 되지 않을까하는 생각에서 시작하게 되었다. 알려주는 곳이 없어서 직접 적어본다.이걸 보고 좋은 api를 써보면서 양질의 사이트가 나왔으면 좋겠다. 먼저 API를 사용하기 위해 공공데이터사이트에 가서 가입해준다. 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.. 2023. 2. 18.
프로그래머스 '안전지대' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다. 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. """ def solution(board): board = [[0 for _ in range(len(board[0])+.. 2023. 2. 16.
프로그래머스 '소인수분해' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. """ def solution(n): result = [] divide_num = 2 while n!=1: if n%divide_num == 0: n/= divide_num result.append(d.. 2023. 2. 16.
프로그래머스 '특이한 정렬' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. """ def solution(numlist, n): rank = sorted([[value, distance:=abs(value-n)] for value in numlist], key = lambda .. 2023. 2. 16.
프로그래머스 '최빈값 구하기' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. """ # max_value를 사용해서 풀었다. # 0번째는 array 값, 1번째는 그 값의 개수, 2번째는 개수가 같은게 있는지 여부이다. # set(array)를 통해 array 값들을 1개씩만 써서 for문을 돈다. # v의 개수가 저장한 최대 개수보다 많다면 max_valu.. 2023. 2. 16.
프로그래머스 '저주의 숫자 3' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요. """ # 문제에 나온대로 조건문을 작성했다. # 3의 배수와 '3'이 있다면 답을 계속해서 더해주었다. def solution(n): answer = 0 for _ in range(n): answer+=1 while answer%3==0 or '3' in str(answer.. 2023. 2. 16.
프로그래머스 '겹치는 선분의 길이' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. """ # 나는 다른 사람들과 다르게 접근을 이상하게 했다. # 점과 점 사이에 0.5 부분을 체크하여 숫자를 세주는 방식으로 풀었다. # 0.5의 소수를 표현하기 싫어서 *10을 해줘 for문을 돌.. 2023. 2. 16.
파이썬 := 연산자와 dict()에 대해서 프로그래머스를 풀고 있었는데 생소한 연산자가 있어서 알려주려고 한다. := 라는 연산자인데 파이썬 3.8부터 사용할 수 있다. ## 1번 코드 -> 일반 코드 s='walrus eat kimchi' ## s에 문자열을 할당 result = 'walrus' in s ## 'walrus' in s를 result에 할당 if result: ## result가 True라면 print(s) ## s 출력 print(result) ## result 출력 ## 2번 코드 -> := 사용 ## s에 문자열을 할당하고, 'walrus' in s를 result에 할당하고, result가 True 라면 if result := 'walrus' in (s := 'walrus eat kimchi'): print(s) ## s 출.. 2023. 2. 15.
프로그래머스 '외계어 사전' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. """ # dic 안에 있는 string을 sort하면 list형태로 나온다. # 그러면 한번씩만 사용한다고 문제가 나와있으므로 리스트 형태가 같다면 # 존재하는 것이므로.. 2023. 2. 15.
로컬에서 BERT모델 돌려서 학습하기 얼마전에 koBERT로 colab에서 학습하였는데 어떻게 로컬에서 옮겨야 할지 감이 안잡혔다. mxnet, glounnlp를 직접 다운로드하여 라이브러리에 넣어주었는데도 안되고 vmware를 깔아서 리눅스환경에서 해보았는데도 잘 안되었다. 그래서 koBERT는 아쉽지만 잠시 모델만 남겨두고 다른 방법으로 로컬로 학습을 시키려고 한다. koBERT 모델 학습하기에서 txt파일을 만들었는데 그것을 사용하겠다. 인공지능 koBERT 모델 학습 추천시스템에 쓰일 '태그'를 달기 위해 모델을 하나 제작하고 있다. 다른 모델들도 많지만 koELECTRA와 기타 모델은 데이터 전처리를 모델에 맞게 해주지 않아서 그런가 정확도가 높지 않았다. 그 beomcoder.tistory.com 0. 데이터 처리하기 koBERT.. 2023. 2. 15.
프로그래머스 '진료순서 정하기' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. """ # 먼저 emergency에서 응급도가 높을수록 먼저 진료해야하므로 역순으로 sort해주었다. # 그리고 emergency리스트를 차례대로 불러와서 rank순으로 리스트에 정리하여 리턴하였다. def solution(emergency): rank = sort.. 2023. 2. 15.
프로그래머스 'k의 개수' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요. """ # i부터 j까지 string형으로 리스트를 만든다음에 다시 string형으로 바꾼다. # 그리고 그 string에서 k의 개수를 세서 리턴한다. def solution(i, j, k): return ''.join([str(n) for n in range(i,j+1).. 2023. 2. 15.
koGPT, openAI GPT3 사용해보기 (chat gpt3, dall-e) 1. openAI GPT3 사용해보기 결론부터 말하면 openAI의 gpt3과 dall e는 결제를 해야해서 포기하였다. 하지만 결제하면 사용할 수 있게 코드는 공유하려고 한다. 먼저 openAI의 chatgpt3에 사용된 모델을 똑같이 api로 사용할 수 있다. OpenAI API OpenAI is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity. openai.com openAI에 들어가서 회원가입을 해준다. 구글로 회원가입하면 편하게 가입이 된다. 그다음 오른쪽 상단의 프로필을 누르고 view api keys 를 누르면 아래와.. 2023. 2. 13.
카카오 API 'Karlo', stable diffusion 사용해보기 집 컴퓨터가 좋지 못해 stable diffusion을 colab에서 사용해볼 수 있는 코드가 있어서 따라서 해보고 사용해봤는데 성능이 web ui보다 좋지 못해 실망했다. 코랩을 끄고 회사에서 사용할 api를 찾아보고 있었는데 카카오에서도 text to image를 서비스하고 있었다. 그래서 한번 사용해보고, 해보고 싶은 사람들이 있을 수 있을 것 같아 사용방법을 알려주려고 한다. 미리 말하지만 성능은 web ui보다 좋지 못하다. 서버에서 정해진 모델에 프롬포트만 입력하여 이미지를 가지고 오는거라 좋은 성능을 기대하려면 webui를 가서 공부하고 사용하는게 좋다. 취지는 카카오톡에서 text to image api를 만들었으니 한번 찍어먹어보자라는 의미이다. Kakao Developers 카카오 AP.. 2023. 2. 12.
프로그래머스 '크기가 작은 부분 문자열' 파이썬 풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는141, 159 2개 입니다. """ def solution(t, p): ans.. 2023. 2. 11.
나만의 개성있는 QR코드 만들기 1. 만들게 된 계기 새로운 모임플래너님이 들어오셨을 때 회사 디자이너님이 모임플래너님의 명함에 QR코드를 넣고 있었다. 예전에 QR코드가 딱딱하지 않고 재미있게 만들어져 있는 걸 어디선가 본 기억이 나서 관심이 생겨서 찾아보았다. 포토샵으로 만들기는 귀찮아서 포스팅하려고 그림판으로 만들었긴 했지만 기존의 QR코드보다는 훨씬 개성있는 QR코드가 나오게 되었다. 2. 만드는 방법 먼저 인터넷에서 QR코드생성이라고 검색하거나 아래의 링크로 들어가서 원하는 방식을 선택하면 된다. URL 큐알코드 생성 - mQR 내용 예: http://www.must.or.kr mqr.kr 나는 여기서 이 블로그의 주소를 QR코드를 찍으면 오게하고 싶어 URL을 선택했다. 그 다음에 URL에 원하는 링크를 적은다음 만들기를 누.. 2023. 2. 11.
인공지능 koBERT 모델 학습 추천시스템에 쓰일 '태그'를 달기 위해 모델을 하나 제작하고 있다. 다른 모델들도 많지만 koELECTRA와 기타 모델은 데이터 전처리를 모델에 맞게 해주지 않아서 그런가 정확도가 높지 않았다. 그래서 그나마 높은 정확도를 보여준 koBERT학습 후기를 남길까 한다. 1. BERT는 무엇인가? 먼저 BERT라는 것은 위키피디아(25억 단어)와 BooksCorpus(8억 단어)로 pretrain 되어 있는 기계번역 모델이다. 하지만 외국에서 만든 것이다 보니 영어에 대해 정확도가 높다. 한국어에 대해서는 영어보다 정확도가 떨어진다. 좋은 알고리즘을 갖고 있는 BERT 모델을 한국어에도 잘 활용할 수 있도록 만들어진 것 중에 하나가 바로 SKT에서 만든 KoBERT모델(https://github.com/SK.. 2023. 2. 11.