일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- programmers
- 백준
- github
- dacon
- 파이썬
- hackerrank
- 편스토랑
- leetcode
- 편스토랑 우승상품
- ubuntu
- AI 경진대회
- PYTHON
- 맥북
- ChatGPT
- SW Expert Academy
- gs25
- Kaggle
- 금융문자분석경진대회
- 우분투
- Git
- Real or Not? NLP with Disaster Tweets
- 프로그래머스
- Docker
- Baekjoon
- 캐치카페
- 더현대서울 맛집
- 데이콘
- 코로나19
- 프로그래머스 파이썬
- 자연어처리
- Today
- Total
목록
반응형
파이썬 (223)
솜씨좋은장씨
코딩 1일 1문제! 오늘의 문제는 백준의 더하기 2 입니다. 10823번: 더하기 2 문자열 S가 여러 줄에 걸쳐서 주어진다. S의 길이는 최대 10,000이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 👨🏻💻 문제 풀이 먼저 이 문제는 여러 줄에 걸쳐 입력 받은 문자열 속 숫자를 모두 더한 값을 구하는 문제입니다. 문자열을 입력 받을 때에는 while 반복문을 활용하여 여러 줄을 입력 받는데 이때 마지막 줄 이후에 반복문을 멈추는데에는 try except 에서 EOFError를 활용하여 마지막 줄일 경우 반복문이 멈추도록 합니다. 그리고 예제 문자열을 잘 살펴보면 10,20, 3 0,50 ,1 00 10,20, 3 0, 50 ~~ 이걸 공백없이 한..
코딩 1일 1문제! 오늘의 문제는 백준의 이번학기 평점은 몇점? 입니다. 2755번: 이번학기 평점은 몇점? 첫째 줄에, 백준이가 이번 학기에 들은 과목 수가 주어진다. 둘째 줄부터 N개의 줄에 각 과목의 과목명, 학점, 성적이 주어진다. 과목명은 알파벳 소문자와 숫자, 그리고 밑줄 (_)로만 이루어져 있 www.acmicpc.net Solution def this_year_avg_score(grade_info): 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, "F" : 0.0} sum_sc..
1. 소수점 단위 반올림 관련 ( 소수점 두번째 이상 부터 ) 오늘 아침에 일어나서 코딩 1일 1문제 풀기 문제로 백준의 이번학기 평점은 몇점? 문제를 푸는데 소수점 세번째 자리에서 반올림을 하는 부분을 round(score, 2) 위처럼 round 함수를 활용하여 구하였는데 이상하게 반올림이 되지않고 버림이 되는 문제가 있었습니다. 직접 테스트 해보니 소수점 두번째 부터는 round의 동작이 기존에 알고있는 반올림과 다르게 반올림하는 값의 앞의 값이 홀수일 경우 0~5 값은 내림, 6~9 까지의 값은 올림이 반올림하는 값의 앞의 값이 0또는 짝수일 경우 0~4 값은 내림, 5~9 까지의 값은 올림이 되었습니다. 직접 결과를 확인해보면 아래와 같습니다. round(2.205, 2) > 2.21 round..
코딩 1일 1문제! 오늘의 문제는 백준의 진수 변환기 입니다. 14915번: 진수 변환기 변환한 n진수의 수를 출력한다. 11~16 진수의 경우 10 이상의 수는 A~F 문자를 사용한다. 예를 들어, 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F를 사용한다. www.acmicpc.net Solution def decimal_converter(number, n): answer = "" temp = list("0123456789ABCDEF") if number == 0: answer = "0" else: while number: answer += temp[number % n] number //= n return answer[::-1] if __name__ == "__main__":..
코딩 1일 1문제! 오늘의 문제는 백준의 카이사르 암호 입니다. 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net Solution def caesar_cipher(string): answer = [] for char in string: if ord(char) > ord('C'): temp = chr(ord(char) - 3) elif ord(char) < ord('D'): temp = chr(ord('Z') - ord('C') + ord(char)) answer.ap..
코딩 1일 1문제! 오늘의 문제는 백준의 이진수 연산 입니다. 12813번: 이진수 연산 총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오. www.acmicpc.net Solution def calculate_binary(A, B): MASK = pow(2, 100000) - 1 print(bin(A & B)[2:].zfill(100000)) print(bin(A | B)[2:].zfill(100000)) print(bin(A ^ B)[2:].zfill(100000)) print(bin(A ^ MASK)[2:].zfill(100000)) print(bin(B ^ MASK)[2:].zfill(1..
코딩 1일 1문제! 오늘의 문제는 백준의 로또 입니다. 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net Solution from itertools import combinations def lotto(numbers): numbers = numbers.split() num, numbers = numbers[0], numbers[1:] lotto_comb = list(combinations(numbers, 6)) lotto_comb = [" ".join(list(map(str, sorted(list(m..
코딩 1일 1문제! 오늘의 문제는 백준의 가장 많은 글자 입니다. 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다. 그리고 적어도 하나의 알파벳이 있다. www.acmicpc.net Solution import sys def most_common_word(input_string): count_dict = {} result = "" alphabet_word = "abcdefghijklmnopqrstuvwxyz" for alphabet in alphabet_word: count_dict[alphabet] = input_string.count(alphabet) items = sorted(count_dict...
코딩 1일 1문제! 오늘의 문제는 백준의 별 찍기 2 입니다. 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net Solution def print_star_2(N): for i in range(N): print(f"{' ' * (N - i - 1)}{'*' * (i + 1)}") if __name__ == "__main__": N = int(input()) print_star_2(N) Solution 풀이 f-string을 활용하여 문제를 풀었습니다. 각 행마다 공백 N - i - 1 개 + * i + 1 개 출력하도록 합니다. GitHub - SOMJ..
코딩 1일 1문제! 오늘의 문제는 백준의 치킨 배달 입니다. 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net Solution from itertools import combinations def find_home_chicken(city_map): home, chicken = [], [] for i, row in enumerate(city_map): for j, col in enumerate(row): if row[j] == 1: home.append((i, j)) elif row[j] ==..
코딩 1일 1문제! 오늘의 문제는 백준의 큰 수 A+B입니다. 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net Solution def big_sum(num1, num2): return num1 + num2 if __name__ == "__main__": num1, num2 = map(int, input().split()) print(big_sum(num1, num2)) Solution 풀이 Python에서는 큰 수도 그냥 더하여 int 형태로 표현할 수 있으므로 입력 받은 두수를 더한 값을 출력하면 됩니다. GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1..
코딩 1일 1문제! 오늘의 문제는 백준의 ATM 입니다. 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net Solution def ATM(people): people.sort() best_order = [] for i in range(len(people)): best_order.append(sum(people[:i+1])) return sum(best_order) if __name__ == "__main__": people_num = int(input()) people = list(map(int, input().split())) print(A..
코딩 1일 1문제! 오늘의 문제는 프로그래머스 2021년 웹 백엔드 개발자 상반기 Dev-Matching 문제 였던 로또의 최고 순위와 최저 순위 입니다. 이번주 로또 당첨을 기원하며! 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr Solution def get_lotto_rank(match_num): rank_dict = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6} return rank_dict[match_num] def sol..
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 위클리 챌린지 2주차 문제인 상호 평가 입니다. 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr Solution def get_person_grade(score): grade = "F" if score >= 90: grade = "A" elif 80
코딩 1일 1문제! 오늘의 문제는 백준의 좋은 단어입니다. 2857번: FBI 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. www.acmicpc.net Solution def well_word(word_list): well_cnt = 0 for word in word_list: my_stack = [] for char in word: if my_stack == []: my_stack.append(char) elif my_stack != []: if my_stack[-1] == char: my_stack.pop() else: my_stack.append(char) if my_stack == []: well_cnt +=..
코딩 1일 1문제! 오늘의 문제는 백준의 FBI입니다. 2857번: FBI 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. www.acmicpc.net Solution def find_fbi_agent(agent_list): result = "HE GOT AWAY!" fbi_agent_ids = [] for agent_id, agent in enumerate(agent_list): if agent.find("FBI") != -1: fbi_agent_ids.append(str(agent_id + 1)) if fbi_agent_ids != []: result = " ".join(fbi_agent_ids) return res..
코딩 1일 1문제! 오늘의 문제는 백준의 그대로 출력하기 2 입니다. 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net Solution def just_print(): while True: try: string2 = input() print(string2) except: break if __name__ == "__main__": just_print() GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 since 2020..
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 위클리 챌린지 1주차 문제인 부족한 금액 계산하기 입니다. 드디어 길고 길었던, 2년같이 느껴졌던 2주간의 자가격리가 끝나 오늘부터는 본격적으로 다시 블로그를 운영해보려합니다. 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr Solution def solution(price, money, count): answer = -1 total_price = 0 for cnt in range(1, count+1): total_price += price * cnt..
코딩 1일 1문제! 드디어 2주간 셀프 자가격리의 마지막날! ㅠㅠㅠㅠ 오늘까지 좀 치트키를... 백준의 A+B - 6 입니다. 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net Solution def A_PLUS_B_6(number_list): return [sum(numbers) for numbers in number_list] if __name__ == "__main__": number_list= [] for _ in range(int(input())): num1, num2 = map(int, input().split(",")) number_list.append((num1, num2)) result = A_PLUS_B..
코딩 1일 1문제! 오늘의 문제는 백준의 줄번호 입니다. 4470번: 줄번호 텍스트에서 줄을 입력받은 뒤, 줄 번호를 출력하는 프로그램을 작성하시오. www.acmicpc.net Solution def line_number(string_list): for idx, string in enumerate(string_list): print(f"{idx+1}. {string}") if __name__ == "__main__": string_list = [] for _ in range(int(input())): string = input() string_list.append(string) line_number(string_list) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 ..
코딩 1일 1문제! 오늘의 문제는 백준의 NN입니다. 11944번: NN 첫 번째 줄에는 N, M이 주어진다. (1 ≤ N, M ≤ 2016) www.acmicpc.net Solution def NN(N, M): return (N * int(N))[:int(M)] if __name__ == "__main__": N, M = input().split() print(NN(N, M)) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub. github.com
코딩 1일 1문제! 오늘의 문제는 백준의 단어 뒤집기 2 입니다. 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net Solution def word_flipping(string): results = [] temp, words = "", "" tag_flag, word_flag = False, True for char in string: if char == "": tag_flag = False word_flag = True results.append(temp) temp = "" if..
코딩 1일 1문제! 오늘의 문제는 백준의 잃어버린 괄호 입니다. 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net Solution def lost_bracket(expression): split_minus = expression.split('-') temp = [] for exp in split_minus: sum_num = 0 for num in exp.split('+'): sum_num += int(num) temp.append(sum_num) result = temp[0] for num in temp..
코로나 관련하여 재택 및 격리로 인하여 너무 슬픈 일요일 오늘의 문제는 백준의 대충 더해입니다. 으아아아 8949번: 대충 더해 두 정수 A, B가 공백을 두고 주어진다. A와 B는 1과 1,000,000 사이의 정수이다. www.acmicpc.net Solution def daechung_sum(num1, num2): result = [] num1_len, num2_len = len(num1), len(num2) if num1_len > num2_len: num2 = '0' * (num1_len - num2_len) + num2 else: num1 = '0' * (num2_len - num1_len) + num1 max_len = max([num1_len, num2_len]) for i in range..
코딩 1일 1문제! 오늘의 문제는 백준의 과제 안 내신 분..? 입니다. 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net Solution def no_report(numbers): set_numbers = list(set(range(1, 31)) - set(numbers)) set_numbers.sort() return set_numbers[0], set_numbers[1] if __name__ == "__main__": numbers = [] for _ in range(28): number = ..
코딩 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...