일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ubuntu
- Docker
- Git
- SW Expert Academy
- 파이썬
- 우분투
- Baekjoon
- 데이콘
- 백준
- Kaggle
- dacon
- 금융문자분석경진대회
- 더현대서울 맛집
- 편스토랑
- PYTHON
- hackerrank
- AI 경진대회
- 캐치카페
- ChatGPT
- leetcode
- programmers
- gs25
- 자연어처리
- 코로나19
- 맥북
- 편스토랑 우승상품
- github
- 프로그래머스
- 프로그래머스 파이썬
- Real or Not? NLP with Disaster Tweets
- Today
- Total
목록
반응형
2020/03 (72)
솜씨좋은장씨
애플의 새로운 커서가 생긴 iPad OS 13.4 버전으로 아이패드의 소프트웨어를 업데이트 하고 오랜만에 블루투스 마우스와 블루투스키보드를 연결하여 사용하려고 보니 위의 사진처럼 "안녕하세요" 를 입력했을때 'ㅏ', 'ㅕ'의 모음이 입력되지 않는 문제가 있었습니다. 이에 아이폰과 맥북에 연결하여 테스트 해보니 정상적으로 입력이 되는 것을 확인되어 블루투스 키보드에는 문제가 없다는 것을 확인할 수 있었습니다. 구글에 검색해보니 이는 손쉬운 사용의 AssistiveTouch 항목에서 마우스 키가 활성화 되어있어 발생하는 문제였습니다. 해결방법은 다음과 같습니다. 해결방법 먼저 설정창으로 진입한 후 왼쪽 배너를 아래로 쓸어내리면 설정 항목을 검색할 수 있는 검색창이 나옵니다. 그 다음 그 검색창에 Assist..
1일 1문제 54일차! 오늘의 문제는 백준의 30입니다. 10610번: 30 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는 www.acmicpc.net Solution 1 N = input() N = list(N) answer = -1 max_num = sorted(N, reverse=True) m..
1일 1문제 53일차! 오늘의 문제는 동전 0 입니다. 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 첫번째 시도 N, K = map(int, input().split()) coins = [] for i in range(N): coin = int(input()) coins.append(coin) index = N - 1 count = 0 while K != 0: if coins[index] K: index = index - 1 print(coun..
1. 필요한 라이브러리 설치하기 pip install pymongo pip install pandas pip install tqdm 먼저 필요한 라이브러리를 설치합니다. 2. csv에서 데이터 불러와서 json 형태로 만들기 CSV는 지난 캐치 프로그램 과제를 할때 만들었던 파일을 그대로 활용했습니다. [캐치카페] 현직자와 함께하는 프로그래밍 3회차 과제 도전기 - 1 (API 데이터 자동으로 추가하기) 먼저 영화 데이터를 추가하기위해서 실제 네이버 영화에서 데이터를 크롤링해서 추가해주었습니다. 현재상영작 : 네이버 영화 상영 중 영화의 예매율/평점/좋아요 순 정보 제공. movie.naver.com 크롤링 해와야하.. somjang.tistory.com import pandas as pd from tq..
오늘은 python과 pymongo를 통해 mongoDB에 데이터를 추가하고 추가한 데이터를 출력해보고자 합니다. 1. 실행환경 - OS : Mac OS Catalina - IDE : Pycharm 2. mongoDB 설치하기 먼저 python과 pymongo를 활용하여 DB에 접근하고 데이터를 추가하거나 출력하려면 mongoDB를 설치해주어야 합니다. 설치과정은 아래의 링크에서 확인할 수 있습니다. 2-1. OS X [MAC OSX]MAC에 MongoDB설치하기! 1. 설치파일 다운로드 받기 Download Center: Community Server Download MongoDB Community Server, the most popular non-relational database built to ..
1일 1문제 52일차! 오늘의 문제는 서로 다른 부분 문자열의 개수 입니다. 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net Solution 1 string = str(input()) strings = [] for i in range(len(string)): for j in range(len(string) - i): strings.append(string[j:j+i+1]) print(len(set(strings))) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTI..
1일 1문제 51일차! 오늘의 문제는 백준의 KMP는 왜 KMP일까? 입니다. 2902번: KMP는 왜 KMP일까? 문제 KMP 알고리즘이 KMP인 이유는 이를 만든 사람의 성이 Knuth, Morris, Prett이기 때문이다. 이렇게 알고리즘에는 발견한 사람의 성을 따서 이름을 붙이는 경우가 많다. 또 다른 예로, 유명한 비대칭 암호화 알고리즘 RSA는 이를 만든 사람의 이름이 Rivest, Shamir, Adleman이다. 사람들은 이렇게 사람 성이 들어간 알고리즘을 두 가지 형태로 부른다. 첫 번째는 성을 모두 쓰고, 이를 하이픈(-)으로 이어 붙인 것이다. 예 www.acmicpc.net Solution input_string = str(input()) split_string = input_st..
오늘은 지난 면접에서 질문으로 받아 짧게 코드를 구현해보았던Python에서 두개의 문자열을 서로 바꾸는 방법에대해서 한번 적어보려고 합니다. 면접때는 C언어 Java시절 많이 하던 방식인 swap 함수를 직접 만들어 면접을 보았습니다. 면접 시 코드def changeString(string_1, string_2): temp_string = string_1 string_1 = string_2 string_2 = temp_string return string_1, string_2string_1 = "string_1" string_2 = "string_2" print("Before Switch Data") print("string_1 : {}".format(string_1)) print("string_2 : ..
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order. Example 1: Input: "Let's take LeetCode contest" Output: "s'teL ekat edoCteeL tsetnoc" Note: In the string, each word is separated by single space and there will not be any extra space in the string. Solution 1 class Solution: def reverseWords(self, ..
You are given a string containing characters A and B only. Your task is to change it into a string such that there are no matching adjacent characters. To do this, you are allowed to delete zero or more characters in the string. Your task is to find the minimum number of required deletions. For example, given the string s = AABAAB, remove an A at positions 0 and 3 to make s = ABAB in 2 deletions..
Mark and Jane are very happy after having their first child. Their son loves toys, so Mark wants to buy some. There are a number of different toys lying in front of him, tagged with their prices. Mark has only a certain amount to spend, and he wants to maximize the number of toys he buys with this money. Given a list of prices and an amount to spend, what is the maximum number of toys Mark can b..
Every email consists of a local name and a domain name, separated by the @ sign. For example, in alice@leetcode.com, alice is the local name, and leetcode.com is the domain name. Besides lowercase letters, these emails may contain '.'s or '+'s. If you add periods ('.') between some characters in the local name part of an email address, mail sent there will be forwarded to the same address withou..
Jigsaw Multilingual Toxic Comment Classification Use TPUs to identify toxicity comments across multiple languages www.kaggle.com Kaggle에서 새로운 대회가 오픈하였습니다. Jigsaw Multilingual Toxic Comment Classification 대회입니다. 여러 커뮤니티를 보니 그동안 여러번 오픈했던 대회인데 이번 대회의 특이한 점은 다국어를 지원하는 모델을 만드는 것과 TPU활용을 장려하는 점이 특이한 점인 것 같습니다. 학습으로 사용하는 데이터는 영어이고 그 데이터로 학습한 모델로 맞춰야할 테스트 데이터는 포르투갈어, 러시아어, 터키어, 스페인어 등 이라고 합니다. 그동안 재난문자트..
1일 1문제 46일차! 오늘의 문제는 쉬운 계단수입니다. 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net Solution inputNum = int(input()) nc = [[0]*10 for _ in range(inputNum+1)] ans, mod = 0, 1000000000 for i in range(1, 10): nc[1][i] = 1 for i in range(2, inputNum+1): for j in range(0, 10): if j > 0: nc[i][j] += nc[i-1][j-1] if j < 9: nc[i][j] += nc[i-1][j+1] nc[i][j] %= mod # print(nc) print(s..
캐글 노트북에서 필요한 라이브러리를 설치하기위해 평소에 주피터 노트북이나 구글 코랩에서 했던 방법대로 하게되면 다음과 같은 출력과 함께 종료되지 않는 것을 볼 수 있습니다. !pip install keras_bert WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /simple/keras-bert/ WARNING: Retrying (Retry(tot..
Kaggle 도전 24회차! 이제 정말 대회 종료까지 얼마 남지 않았습니다. 지난 23일동안 정말 다양한 데이터 전처리 방법과 LSTM, Bi-LSTM, CNN, CNN-LSTM, RNN, GRU, BERT등 정말 다양한 모델을 사용하여 결과를 도출하여 보았을때 BERT로 도출한 결과가 가장 좋았습니다. 남은 2일은 BERT를 활용하여 결과를 내고 최종 제출 파일을 선택하기로 하였습니다. 그리고 1.0000의 Public Score를 갖고 있는 사람들중에 일부는 test 데이터의 정답 라벨을 다운로드 받아 그 데이터를 제출한 것을 알게되었고 정말 많이 실망하게 되었습니다. 이것을 알고 검색해보던 중 지난 다른 대회에서도 이런 cheating이 있었고 상금까지 받아가 기사에 났던 적이 있는 것도 알게되었고..
Kaggle 도전 23회차! 오늘은 DACON에서 주최했던 지난 KB 금융문자분석 경진대회에서 1위를 한 스팸구이 팀의 방법을 벤치마킹하여 도전해보았습니다. hotorch/Dacon_14th_Competition_code Dacon 14th Competition 1st Place- "Financial smishing character analysis" - hotorch/Dacon_14th_Competition_code github.com TF-IDF 에서 TF에 1+log(TF) 한 방식을 사용하였고 lightGBM모델에 GridSearchCV를 통한 최적화를 실시하였습니다. 데이터 전처리방식은 다음과 같습니다. he's -> he is / fromåÊwounds -> from wounds 와 같이 바꾸..
Harold is a kidnapper who wrote a ransom note, but now he is worried it will be traced back to him through his handwriting. He found a magazine and wants to know if he can cut out whole words from it and use them to create an untraceable replica of his ransom note. The words in his note are case-sensitive and he must use only whole words available in the magazine. He cannot use substrings or con..
코딩 1일 1문제 42일차! SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 주어진 문자열을 가지고 앞과 뒤에서 하나씩 알파벳을 뽑아서 문자열을 만드는데 사전순으로 가장 빠른 문자열을 만드는 것이 목표인 문제입니다. 11회차만에.... 장장 12시간에 걸친 고민 끝에 풀었습니다. 처음부터 하나하나 손으로 적어가면서 풀어볼껄 하는 후회가 드는 문제였습니다. Solution input_num = int(input()) for i in range(input_num): input_text = str(input()) text = list(input_text) answer = [] front = 0 end = ..
데이콘 온도추정 경진대회 도전 7, 8회차입니다. [공공] AI프렌즈 시즌1 온도 추정 경진대회 출처 : DACON - Data Science Competition dacon.io 첫번째 시도 오늘은 LightGBM모델의 하이퍼 파라미터를 늘려서 시도해보았습니다. Y18 데이터는 비어있는 구간은 Y06, Y09, Y12, Y16, Y17을 평균 낸 값을 넣어주어 비어있지않은 구간의 데이터와 함께 사용했습니다. data_for_graph = train.loc[:, ['Y06', 'Y09', 'Y12', 'Y16', 'Y17']].dropna() plt.figure(figsize=(20, 10)) plt.plot(data_for_graph) import numpy as np new_Y_18 = [] for ..
Kaggle 도전 22회차! 오늘은 아르바이트를 다녀온 후 시간이 빠듯하여 그동안 제출했던 모델중에 가장 결과가 좋았던 모델들에 바뀐 데이터 전처리방식을 적용한 데이터를 활용하여 학습하고 결과를 도출해보았습니다. 데이터 전처리방식은 21회차와 동일합니다. from keras.preprocessing.text import Tokenizer max_words = 12396 tokenizer = Tokenizer(num_words = max_words) tokenizer.fit_on_texts(X_train) X_train_vec = tokenizer.texts_to_sequences(X_train) X_test_vec = tokenizer.texts_to_sequences(X_test) import matp..
A bracket is considered to be any one of the following characters: (, ), {, }, [, or ]. Two brackets are considered to be a matched pair if the an opening bracket (i.e., (, [, or {) occurs to the left of a closing bracket (i.e., ), ], or }) of the exact same type. There are three types of matched pairs of brackets: [], {}, and (). A matching pair of brackets is not balanced if the set of bracket..
1일 1문제 42일차! 오늘의 문제는 백준의 2xn타일링입니다. 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net Solution n = int(input()) def answer(n): if n == 1: fiboNum = 1 elif n == 2: fiboNum = 2 elif n >= 3: fibo = [0] * (n) fibo[0] = 1 fibo[1] = 2 for i in range(2, n): fibo[i] = fibo[i-1] + fibo[i-2] fiboNum = fibo[n-1] % 10007 return fiboN..
Kaggle 도전 20회차! 이제 정말 종료까지 얼마 남지 않았았습니다. 오늘은 먼저 19회차의 방법으로 전처리를 한후에 TF-IDF로 임베딩을하고 lightGBM 모델을 사용하여 결과를 내보았습니다. import re clear_text_list = list(train['clear_text']) X_train = [] for clear_text in clear_text_list: word_list = word_tokenize(clear_text) word_list = [word for word in word_list if len(word) > 2] word_list = [word for word in word_list if word not in stop_words] # word_list = [stemm..
데이콘 온도추정 경진대회 도전 5, 6회차입니다. [공공] AI프렌즈 시즌1 온도 추정 경진대회 출처 : DACON - Data Science Competition dacon.io 첫번째 시도 Y18의 앞쪽 30분간의 없는 데이터를 Y06, Y09, Y12, Y16, Y17 의 평균으로 채워넣고 기상청 데이터는 X00, X07, X28, X31, X32 기온데이터, X11, X34 일일 누적 일사량 데이터를 사용하였습니다. data_for_graph = train.loc[:, ['Y06', 'Y09', 'Y12', 'Y16', 'Y17']].dropna() plt.figure(figsize=(20, 10)) plt.plot(data_for_graph) import numpy as np new_Y_18 =..
오늘은 지원했던 회사에서 감사하게도 면접을 볼 기회를 주셔서 면접을 보러 다녀왔습니다. 면접 시 문제로 나왔던 문제를 다시 풀어보니 어려운 문제가 아니었지만 면접시간에 조건에 맞는 코드를 작성하지 못하여 면접이 끝나고 다시 도전해보았습니다. 먼저 문제는 다음과 같습니다. 문제 다음과 같이 정렬된 리스트 3개가 주어졌을때 3개의 리스트에 모두 존재하는 값을 찾아 출력하시오. (단, 정렬된 리스트라는 조건을 활용하여 최대한 효율적인 코드를 작성하시오) Sample input a = [ 1, 3, 5, 7, 9, 13, 15 ] b = [ 4, 5, 6, 8, 13 ] c = [ 5, 8, 13, 19 ] Sample output [ 5, 13 ] 저는 이문제를 보고 처음에는 in 을 사용하여 문제를 풀었습니..
코딩 1일 1문제 41일차! 작심 3일로 끝날것 같았던 문제 풀이가 41일차까지 왔습니다. 오늘의 문제는 세제곱근을 찾아라입니다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 입력 받은 수가 세제곱의 수면 세제곱근의 값을 출력하고 그렇지 않으면 -1을 출력하는 문제입니다. Solution loop_num = int(input()) pow3_dic = {} for i in range(pow(10, 6) + 1): pow3_dic[pow(i, 3)] = i keys = pow3_dic.keys() for i in range(loop_num): input_num = int(input()) if inpu..
Kaggle 20회차! 이제 최종 23일까지 약 5일밖에 남지않았습니다. 0.10000의 점의 점수를 얻은 분들은 도대체 어떤 분들인지 빨리 대회가 끝나고 수상자들의 코드가 공개되었으면 하는 바램입니다. 오늘은 지금까지 제출했던 것들 중 가장 결과가 좋았던 9회차에 사용했던 버트모델에 새로운 방법의 데이터 전처리 방식을 사용하여 결과를 도출하고 제출해 보았습니다. 전처리 방식은 NLP-disaster-tweets-1 Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources www.kaggle.com 위의 링크에서 여러 이상한 단어들을 원래의 단어로 잘 바꾸어주는 parse_tweet이..
데이콘 온도추정 경진대회 도전 4회차입니다. [공공] AI프렌즈 시즌1 온도 추정 경진대회 출처 : DACON - Data Science Competition dacon.io 오늘은 그동안 계속 해보고 싶었던 방법을 도전해보았습니다. 30일 동안의 Y00 ~ Y17까지의 센서 데이터를 가지고 Y18 센서의 데이터만 존재하는 3일동안의 Y00 ~ Y17 센서 데이터를 예측한 후 가장 비슷한 센서데이터를 선택하여 그 데이터를 바탕으로 앞쪽에 30일 가량 비어있는 Y18데이터를 채워넣어 학습하고 결과를 도출해보았습니다. 먼저 ligthGBM의 LGBMRegressor를 활용하여 3일간의 Y00 ~ Y17센서 데이터를 예측해보았습니다. 최적의 파라미터를 구하는데에는 GridSearchCV를 활용하였습니다. lg..
코딩 1일 1문제 40일차! 오늘의 문제는 삼성 SW EXPERT의 염라대왕의 이름정렬입니다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Solution count = 1 loop_num = int(input()) for i in range(loop_num): input_num = int(input()) input_str_list = [] for i in range(input_num): string = str(input()) input_str_list.append((string, len(string))) # print(input_str_list) input_str_list = list(set(input_s..