일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AI 경진대회
- 우분투
- Git
- 편스토랑
- dacon
- 맥북
- PYTHON
- Real or Not? NLP with Disaster Tweets
- 더현대서울 맛집
- 자연어처리
- 캐치카페
- Baekjoon
- 금융문자분석경진대회
- ChatGPT
- 백준
- 데이콘
- SW Expert Academy
- 파이썬
- gs25
- github
- 프로그래머스 파이썬
- leetcode
- hackerrank
- ubuntu
- Docker
- 코로나19
- programmers
- 편스토랑 우승상품
- 프로그래머스
- Kaggle
- Today
- Total
목록
반응형
Programming (1169)
솜씨좋은장씨
최근 명령어를 python 코드 속에서 실행하고 그 결과 값을 코드로 받아와 활용을 해야하는 작업이 있었습니다. Mac과 Ubuntu에서 이를 수행하는 방법에 대해 정리해 보려합니다. 명령어 실행과 값 받아오기는 python의 기본 모듈인 subprocess를 사용했습니다. 먼저 테스트에 활용할 python 스크립트를 하나 작성해주었습니다. exec_python_script.py def solution(): return "test_script" if __name__ == "__main__": print(solution()) 그리고 이 파일을 실행하고 결과 값을 받아와 return하는 함수를 하나 만들어 주었습니다. import subprocess def exec_script(icmd): cmd = lis..
코딩 1일 1문제! 오늘의 문제는 백준의 정수의 개수 입니다. 살짝 너무 많이 쉬어가는 느낌이지만 오늘만은 치트키를... 10821번: 정수의 개수 숫자와 콤마로만 이루어진 문자열 S가 주어진다. 이때, S에 포함되어있는 정수의 개수를 구하는 프로그램을 작성하시오. S의 첫 문자와 마지막 문자는 항상 숫자이고, 콤마는 연속해서 주어지지 www.acmicpc.net Solution def integer_number(string): return len(string.split(",")) if __name__ == "__main__": input_string = input() print(integer_number(input_string)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일..
코딩 1일 1문제! 오늘의 문제는 백준의 더하기 입니다. 10822번: 더하기 첫째 줄에 문자열 S가 주어진다. S의 길이는 최대 100이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net Solution def custom_sum(string): return sum(list(map(int, string.split(",")))) if __name__ == "__main__": input_string = input() print(custom_sum(input_string)) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE developme..
코딩 1일 1문제! 오늘의 문제는 백준의 베스트셀러 입니다. 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net Solution def best_seller(book_list): best_check = {} for book in book_list: if book not in best_check.keys(): best_check[book] = 1 else: best_check[book] += 1 best_sell_num = max(best_check.values()) best_list = [sell_book..
코딩 1일 1문제! 오늘의 문제는 백준의 끝말잇기 입니다. 20528번: 끝말잇기 욱제는 준원이랑 끝말잇기를 하고 있다. 준원이가 시작하자마자 '스트론튬'을 외쳐서 욱제는 피가 거꾸로 솟았다~ 솟으면 백두산~ 백두산은 높아~ 높으면 비행기~ 비행기는 빨라~ 빠르면 기차~ www.acmicpc.net Solution def end_to_end(num, string): is_end_to_end = 1 if num > 0: split_str = string.split() compare_word = split_str[-1] for i in range(1, num): if split_str[i] != compare_word: is_end_to_end = 0 break compare_word = split_str[..
코딩 1일 1문제! 오늘의 문제는 백준의 유학 금지입니다. 2789번: 유학 금지 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, www.acmicpc.net Solution def study_abroad_prohibition(string): cambridge = set("CAMBRIDGE") return "".join([char for char in string if char not in cambridge]) if __name__ == "__main__": string = input() print(study_abroad_prohibition(string)) SOM..
코딩 1일 1문제! 오늘의 문제는 백준의 균형잡힌 세상입니다. 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net Solution import re def balanced_world(string): is_balanced = "yes" my_stack = [] open_bracket = ['(', '['] close_bracket = [')', ']'] braket_list = list(re.sub(r"[^\(\)\[\]]", '', string)) for idx, bracket in enumerat..
코딩 1일 1문제! 오늘의 문제는 백준의 좋은 자동차 번호판 입니다. 1871번: 좋은 자동차 번호판 각각의 자동차 번호판에 대해서, 좋은 번호판이면 "nice"를, 아니면 "not nice"를 출력한다. www.acmicpc.net Solution def nice_car_number(car_number): is_nice = "not nice" front, end = car_number.split("-") front_num, end_num = 0, int(end) for i in range(3): front_num += (ord(front[i]) - 65) * 26**(2-i) if abs(front_num - end_num)
코딩 1일 1문제! 오늘의 문제는 백준의 무한 문자열 입니다. 12871번: 무한 문자열 첫째 줄에 s, 둘째 줄에 t가 주어진다. 두 문자열 s와 t의 길이는 50보다 작거나 같은 자연수이고, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net Solution import math def get_least_common_multiple(string_s_len, string_t_len): return string_s_len * string_t_len // math.gcd(string_s_len, string_t_len) def infinity_string(string_s, string_t): is_infinity_string = 0 string_s_len = len(string_s) string..
코딩 1일 1문제! 오늘의 문제는 백준의 파일 정리 입니다. 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net Solution from collections import Counter def arrange_files(file_list): file_formats = [] for file in file_list: _, file_format = file.split(".") file_formats.append(file_format) cnt = Counter(file_formats).items() sorted_list = sor..
코딩 1일 1문제! 오늘의 문제는 백준의 문자가 몇갤까 입니다. 7600번: 문자가 몇갤까 각 줄마다 출몰한 알파벳의 개수를 출력하면 된다. www.acmicpc.net Solution import re def get_word_nums(string): string = re.sub(r"[^a-z]", '', string.lower()) alphabets = list(set(string)) return len(alphabets) if __name__ == "__main__": while True: string = input() if string == "#": break print(get_word_nums(string)) Solution 풀이 문자열은 #이 입력될때 까지 계속 입력 받습니다. 입력받은 문자열을..
코딩 1일 1문제! 오늘의 문제는 백준의 알파벳 전부 쓰기입니다. 11091번: 알파벳 전부 쓰기 팬그램은 26개의 알파벳, a~z를 최소 한번씩 모두 사용한 문장을 말한다. 아마 가장 유명한 문장은 이것일 것이다. "The quick brown fox jumps over the lazy dog." 꿍은 다른 문장들중에 팬그램인 것은 없는지 www.acmicpc.net Solution import re def use_all_alphabet(string, alphabets): is_pangram = "pangram" string = re.sub(r"[^a-z]", '', string.lower()) string = set(string) not_uesd_alphabet = alphabets - string ..
코딩 1일 1문제! 오늘의 문제는 백준의 행복한지 슬픈지 입니다. 행복한지 슬픈지 보지않아도 모두가 행복한 하루였으면 좋겠습니다~ 10769번: 행복한지 슬픈지 승엽이는 자신의 감정을 표현하기 위해서 종종 문자 메시지에 이모티콘을 넣어 보내곤 한다. 승엽이가 보내는 이모티콘은 세 개의 문자가 붙어있는 구조로 이루어져 있으며, 행복한 얼굴을 나 www.acmicpc.net Solution def happy_or_sad(mind_string): mind = None happy, sad = 0, 0 split_string = mind_string.split(":") for split_str in split_string: if split_str[:2] == "-)": happy += 1 elif split_st..
코딩 1일 1문제! 오늘의 문제는 백준의 수학숙제 입니다. 2870번: 수학숙제 종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차 www.acmicpc.net Solution import re def math_homework(papers): number_list = [] for paper in papers: numbers = re.findall("\d+", paper) numbers = list(map(int, numbers)) number_list += numbers number_list.sort() for number in number_list: print(num..
최근에 업무를 하면서 제가 작성했던 코드의 성능을 높이는 작업이 필요하여 어떻게 할까 고민하던 차에 회사 동기가 알려주어 프로파일링이라는 것을 알게되었고 프로파일링을 통하여 제 코드의 성능 저하 원인을 파악하게 되었고 해당 원인을 해결함으로써 거의 10배에 가까운 성능 향상이 일어나는 것을 경험하게 되었습니다. 한편으로는 기존에 제가 작성하던 코드가 얼마나 비효율적이었는지를 깨닫는 시간이기도 했습니다. 뭔가 엄청 망한 성적표를 받는 기분이었습니다. 😅 프로파일링을 통해서 내 코드 속에서 어떤 부분이 가장 많이 호출되는지 어떤 부분이 동작하는데 가장 많은 소요시간이 걸리는지 알수있었습니다. 이 글에서는 python의 profile과 line_profiler를 활용하여 프로파일링 하는 방법에 대하여 적어보려..
최근 python 코드를 암호화해야할 일이 생겨 sourcedefender를 활용하여 진행해보았습니다. 다음은 sourcedefender를 활용하여 암호화를 진행하는 방법입니다. 상업적으로 사용할때에는 라이센스 문제가 있기 때문에 사용에 주의하시기 바랍니다@~@ 1. sourcedefender 설치 먼저 pip를 활용하여 sourcedefender를 설치합니다. $ pip install sourcedefender $ pip install sourcedefender==6.0.21 설치는 위의 두 명령어 중 하나를 골라 설치하면 됩니다. 2. 실행할 코드 속 __name__ == "__main__" 지우기 그 다음 실행 할 코드 속 if __name__ == "__main__"": main 라인을 삭제합니다..
이 글에서는 opencv를 활용하여 도형을 그리는 방법에 대해서 적어보려합니다. 0. opencv 설치하고 import 하기 $ pip install opencv-python import cv2 1. 선 그릴 이미지 불러오기 or 흰 바탕 만들기 1-1. 이미지 불러오기 background_img = cv2.imread("./filename.png") cv2의 imread를 활용하여 이미지를 불러옵니다. 1-2. 흰 바탕 만들기 먼저 numpy를 설치합니다. $ pip install numpy 흰 바탕은 numpy의 zeros를 활용하여 만들어줍니다. import numpy as np 설치한 numpy를 import 하고 background_img = np.zeros(shape=(500, 300, 3),..
코딩 1일 1문제! 오늘의 문제는 사칙연산 입니다. 13420번: 사칙연산 사칙연산은 덧셈, 뺄셈, 곱셈, 나눗셈으로 이루어져 있으며, 컴퓨터 프로그램에서 이를 표현하는 기호는 +, -, *, / 와 같다. 아래는 컴퓨터 프로그램에서 표현한 사칙 연산의 예제이다. 3 * 2 = 6 문 www.acmicpc.net Solution def arithmetic_operation(mathematical_expression): is_correct = "wrong answer" num1, operator, num2, _, result = mathematical_expression.split() num1, num2, result = int(num1), int(num2), int(result) if (operator ..
코딩 1일 1문제! 오늘의 문제는 백준의 히든 넘버입니다. 8595번: 히든 넘버 첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다. 둘째 줄에는 단어가 주어진다. 단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다. www.acmicpc.net Solution import re def hidden_number(string): numbers = re.findall("\d+", string) numbers = list(map(int, numbers)) return sum(numbers) if __name__ == "__main__": str_len = input() string = input() print(hidden_number(string)) Solution 풀이 이번엔 정..
코딩 1일 1문제! 오늘의 문제는 백준의 럭키 스트레이트입니다. 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net Solution def lucky_straight(score): state = "READY" median_idx = len(score) // 2 score1, score2 = score[:median_idx], score[median_idx:] score1 = sum(list(map(int, str(score1)))) score2 = sum(list(map(int, str(score2)))) if score1 == score2: state = "LUC..
코딩 1일 1문제! 오늘의 문제는 백준의 신용카드 판별 입니다. 14726번: 신용카드 판별 신용카드는 총 16자리의 숫자로 구성되어 있다. 언뜻 보기에는 무작위로 된 숫자로 구성되어 있는 것 같이 보이지만 그 속에는 하나의 수학적 비밀이 숨겨져 있다. 그중 하나가 카드 번호가 유효 www.acmicpc.net Solution def check_credit_card_number(card_number): is_valid = "F" sum_num = 0 card_number = list(card_number) for i, card_num in enumerate(card_number): if (i + 1) % 2 != 0: number = int(card_num) * 2 if number > 9: number..
코딩 1일 1문제! 오늘의 문제는 백준의 이상한 곱셈입니다. 1225번: 이상한 곱셈 첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는다. www.acmicpc.net 첫번째 시도 def strange_multiplication(string): result = 0 number1, number2 = string.split() for num1 in number1: for num2 in number2: result += int(num1) * int(num2) return result if __name__ == "__main__": string = input() print(strange_multiplication(string)) 먼저 숫자 두개를 입력 받은 뒤에 공백으로 spl..
코딩 1일 1문제! 오늘의 문제는 백준의 소수 단어 입니다. 2153번: 소수 단어 소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나 www.acmicpc.net Solution def check_is_primary_num(num): for i in range(2, int(num**0.5) + 1): if num % i == 0: return "It is not a prime word." return "It is a prime word." def change_word_to_num(word): num = 0 for char in word: ..
리액트 앱의 코드를 수정하고 잘 수정되었는지 $ yarn start 위의 명령어를 통해 실행해보았는데 yarn run v1.22.0 $ react-scripts start There might be a problem with the project dependency tree. It is likely not a bug in Create React App, but something you need to fix locally. The react-scripts package provided by Create React App requires a dependency: "babel-loader": "8.0.5" Don't try to install it manually: your package manager doe..
코딩 1일 1문제! 오늘의 문제는 백준의 세로읽기입니다. 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net Solution def read_vertical(strings): read_string = [] max_len = max([len(string) for string in strings]) for i in range(max_len): for string in strings: if len(string) - 1 >= i: read_string.append(string[i]) return "".join(re..
macOS에 nvm설치하는 방법! ( feat. brew ) macOS에서는 brew라는 아주 편리한 친구가 있습니다. 먼저 아래의 링크를 참고하여 brew를 설치합니다. 1. brew 설치하기 [Mac OSX] Brew 설치하기 먼저 Brew 홈페이지로 이동합니다. https://brew.sh/index_ko H.. somjang.tistory.com [React] yarn과 create-react-app 설치하고 리액트 앱 생성, 실행하는 방법 1. yarn 설치하기 $ npm install -g yarn 2. create-react-app을 활용하여 리액트 앱 생성하기 $ yarn create react-app react-study-first-time --scripts-version 2.1.7 3...
1. yarn 설치하기 $ npm install -g yarn 2. create-react-app을 활용하여 리액트 앱 생성하기 $ yarn create react-app react-study-first-time --scripts-version 2.1.7 3. 생성한 리액트 앱 실행하기 $ cd react-study-first-time $ yarn start 여기까지는 예전에 캐치카페에서 들었던 프로그램에서 해봤던 내용이어서 어렵지 않았습니다! 솜씨좋은장씨 세상 모든 개발 관련 지식을 담아보자! somjang.tistory.com 앞으로 차근차근 하나씩 공부해볼 예정입니다. 읽어주셔서 감사합니다.
nvm? nvm은 Node.js 여러 버전을 설치해두고 편하게 관리할 수 있게 해주는 도구입니다. 설치방법은 아래와 같습니다. macOS에서는 brew라는 아주 편리한 친구가 있습니다. 먼저 아래의 링크를 참고하여 brew를 설치합니다. 1. brew 설치하기 [Mac OSX] Brew 설치하기 먼저 Brew 홈페이지로 이동합니다. https://brew.sh/index_ko Homebrew The missing package manager for macOS (or Linux). brew.sh 홈페이지에서 Homebrew 설치하기 아래에 있는 명령어를 복사하여 실행하면된.. somjang.tistory.com 2. brew를 활용하여 nvm 설치하기 $ brew install nvm 3. 환경변수 설정하..
오늘의 문제는 백준의 회사에 있는 사람 입니다. 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net Solution 1 def company_people(access_record): record_dict = {} for access in access_record: name, status = access.split() if status == "enter": record_dict[name] = status else: del record_dict[name] return sorte..
코딩 1일 1문제! 오늘의 문제는 퇴근하기 전 제 마음과 같았던 아! 입니다. 제목에 끌려 풀었는데 아주 쉬웠던 문제였습니다. 4999번: 아! 입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 두 문자열은 모두 a와 h로만 이루어져 있다. a의 개수는 0보다 크거 www.acmicpc.net Solution def is_go_hospital(doctor, justin_bieber): is_go = "no" if len(doctor)