일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Docker
- 백준
- 금융문자분석경진대회
- programmers
- 자연어처리
- AI 경진대회
- Baekjoon
- 데이콘
- Real or Not? NLP with Disaster Tweets
- 우분투
- leetcode
- Kaggle
- PYTHON
- gs25
- 더현대서울 맛집
- 프로그래머스 파이썬
- 편스토랑 우승상품
- 캐치카페
- SW Expert Academy
- github
- ChatGPT
- 파이썬
- Git
- 프로그래머스
- 코로나19
- 편스토랑
- dacon
- hackerrank
- ubuntu
- 맥북
- Today
- Total
목록
반응형
PYTHON (460)
솜씨좋은장씨
코딩 1일 1문제 오늘의 문제는 최소, 최대 입니다. 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net Solution def min_max(string): number_list = list(map(int, string.split())) return min(number_list), max(number_list) if __name__ == "__main__": _ = input() numbers = input() min_num, max_num = min_max(numbers) p..
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 숫자 문자열과 영단어 입니다. 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr Solution def solution(string): answer = "" word_to_num = { "zero": "0", "one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9" } temp = "" for char i..
코딩 1일 1문제! 오늘의 문제는 백준의 학점 계산입니다. 2754번: 학점계산 어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. A+: 4.3, A0: 4.0, A-: 3.7 B+: 3.3, B0: 3.0, B-: 2.7 C+: 2.3, C0: 2.0, C-: 1.7 D+: 1.3, D0: 1.0, D-: 0.7 F: 0.0 www.acmicpc.net Solution def credit(string): credit_dict = {"A+": 4.3, "A0": 4.0, "A-": 3.7, "B+": 3.3, "B0": 3.0, "B-": 2.7, "C+": 2.3, "C0": 2.0, "C-": 1.7, "D+": 1.3, "D0": 1.0, "D-": 0.7,..
코딩 1일 1문제! 재택근무로 인하여 주말같은 오늘의 문제는 !밀비 급일 입니다. 11365번: !밀비 급일 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오. www.acmicpc.net Solution def top_secret(string): split_str = string.split()[::-1] split_str = [string[::-1] for string in split_str] return " ".join(split_str) if __name__ == "__main__": while True: string = input() if string == "END": ..
코딩 1일 1문제! 오늘의 문제는 백준의 너의 이름은 몇 점이니? 입니다. 15813번: 너의 이름은 몇 점이니? 첫 번째 줄에 이름의 길이가 주어진다. (단, 길이는 100자 이하이다) 두 번째 줄에 이름이 띄어쓰기 없이 대문자로 주어진다. www.acmicpc.net Solution def name_score(name): score = 0 A = ord('A') - 1 for char in name: score += ord(char) - A return score if __name__ == "__main__": _ = input() name = input() print(name_score(name)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020...
코딩 1일 1문제! 오늘의 문제는 백준의 첼시를 도와줘! 입니다. 11098번: 첼시를 도와줘! 구단이 성적을 내지 못한다면 답은 새 선수 영입뿐이다. 이것은 오늘날 유럽 리그에서 가장 흔한 전략이고, 노르웨이의 로젠버그 팀은 이러한 전략이 성공한 대표적 예시다. 그들은 많은 스카 www.acmicpc.net Solution def helf_Chelsea(player_list): player_infos = [] for player_info in player_list: transfer_fee, player_name = player_info.split() player_infos.append((int(transfer_fee), player_name)) return sorted(player_infos, key=..
코딩 1일 1문제! 오늘의 문제는 백준의 니모를 찾아서 입니다. 10173번: 니모를 찾아서 여러 문장이 각 줄로 입력되며, 입력의 마지막에는 "EOI" 입력된다. 한 줄은 최대 80개의 글자로 이루어져 있다. www.acmicpc.net Solution def find_nemo(ocean): is_find = "Missing" if ocean.lower().find("nemo") != -1: is_find = "Found" return is_find if __name__ == "__main__": while True: ocean = input() if ocean == "EOI": break print(find_nemo(ocean)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1..
코딩 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 라인을 삭제합니다..
코딩 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: ..
코딩 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..
오늘의 문제는 백준의 회사에 있는 사람 입니다. 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..