일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 편스토랑
- 코로나19
- dacon
- gs25
- programmers
- PYTHON
- 자연어처리
- leetcode
- 맥북
- Docker
- 파이썬
- 편스토랑 우승상품
- 금융문자분석경진대회
- Real or Not? NLP with Disaster Tweets
- 프로그래머스
- 프로그래머스 파이썬
- SW Expert Academy
- Git
- hackerrank
- 백준
- 우분투
- Baekjoon
- ChatGPT
- 더현대서울 맛집
- AI 경진대회
- Kaggle
- 데이콘
- 캐치카페
- github
- Today
- Total
목록
반응형
Baekjoon (592)
솜씨좋은장씨
간만에 주말인데도 불구하고 늦잠을 자지 않은 오늘의 코딩 1일 1문제! 오늘의 문제는 백준의 암기왕입니다. 백준의 암기왕을 파이썬으로 풀이하였습니다. 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 👨🏻💻 문제 풀이 간만에 날이 좋은 오늘! 즐겁게 문제를 풀어보았습니다. 사실 문제가 쉬워보이는데 그냥 쉬워보이는 내 생각 그대로 풀면 풀리지 않는 문제 일 것 같아서 풀었는데? 생각보다 그 방법으로 풀어보니 오히려 더 좋은 결과가 나와 조금은 의아했지만! 그래도 날이 좋아 뭐든 좋은 날입니다. 암기왕은 수첩1에 적혀..
코딩 1일 1문제! 오늘의 문제는 백준의 내 학점을 구해줘 입니다. 백준의 내 학점을 구해줘 문제를 파이썬으로 풀이해보았습니다. 10984번: 내 학점을 구해줘 게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자. www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 이전의 학점을 구하는 문제와 비슷한 문제입니다. 2021.07.27 - [Programming/코딩 1일 1문제] - [BaekJoon] 2754번 : 학점계산 (Python) 2021.08.22 - [Programming/코딩 1일 1문제] - [BaekJoon] 2755번 : 이번학기 평점은 몇점? (Python) 비슷하지만! 여러학기의 학점을 입..
코딩 1일 1문제 470일차! 오늘의 문제는 백준 5656번 비교 연산자입니다. 백준의 비교 연산자 문제를 파이썬으로 풀이하였습니다. ", ">=", " num2) elif operator == "=": answer = (num1 >= num2) elif operator == "==": answer = (num1 == num2) 그 후 가운데 문자열의 연산자로 연산한 결과를 answer에 넣을 수 있도록 if 조건문을 활용하여 가운데 문자열을 확인하고 각각 가운데 문자열과 같은 모양의 진짜 비교 연산자와 num1, num2를 활용하여 구한 값을 answer에 넣도록 합니다. 이때 가운데 문자열의 값이 E 일 경우는 반복문을 종료해야하는데 이를 파악하기 위해 이때는 answer 에 -1을 넣어주도록 합니다..
코딩 1일 1문제! 오늘의 문제는 백준의 8진수, 10진수, 16진수 입니다. 백준의 8진수, 10진수, 16진수 문제를 파이썬으로 풀이하였습니다. 11816번: 8진수, 10진수, 16진수 첫째 줄에 X가 주어진다. X는 10진수로 바꿨을 때, 1,000,000보다 작거나 같은 자연수이다. 16진수인 경우 알파벳은 소문자로만 이루어져 있다. www.acmicpc.net 👨🏻💻 문제 풀이 8진수, 10진수, 16진수 문제 이름 그대로 8진수, 10진수, 16진수가 들어오면 이를 모두 10진수로 바꾸어 출력하는 문제입니다. 그럼 입력받은 수가 8진수인지 10진수인지 16진수인지 판단은 어떻게 하느냐 문제에 힌트가 있습니다. 8진수인 경우에는 수의 앞에 0이 주어지고, 16진수인 경우에는 0x가 주어진다...
코딩 1일 1문제! 오늘의 문제는 백준의 화성 수학입니다. 백준의 화성 수학을 파이썬으로 풀이하였습니다. 5355번: 화성 수학 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산 www.acmicpc.net 👨🏻💻 문제 풀이 화성 수학이라고 해서 처음에는 공업수학 같은 수학의 하나의 종류인가..? 싶었는데 그냥 문제에서 정의한 방식대로 계산을 하는 수학을 화성 수학이라고 부르는 것이었습니다. 화성 수학의 계산 방법은 다음과 같습니다. 화성 수학의 수식 ( exp ) 은 10.4 # % @ 위처럼 식의 맨 앞에 숫자가 하나있고 공백을 사이에..
코딩 1일 1문제! 오늘의 문제는 백준의 백대열 입니다. 백준의 백대열 문제를 파이썬으로 풀이하였습니다. 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net 👨🏻💻 문제 풀이 숫자 N과 M 이 : 을 사이로 두고 주어지면 두 숫자를 약분한 값을 출력하는 문제입니다. 두 숫자를 약분하여 더이상 나누어지지 않는 숫자로 나누기 위해서는 두 숫자의 최대공약수로 나누어야 합니다. 만약 N이 100 M이 10 이라면 이 둘의 최대공약수인 10을 활용하여 나누면 원하는 값인 10과 1이 나옵니다. 18과 24일 경우라면 최대공약수 6을 활용하여 나누면 됩니다. 최대공약수는 Python의 경우에는 기본으로 제공되는 함수중에 math 의..
코딩 1일 1문제! 오늘의 문제는 백준의 창영이의 일기장 입니다. 2954번: 창영이의 일기장 창영이는 매일 밤 하루동안 일어난 일을 일기장에 남긴다. 일기장을 쓰면서 영어 공부도 같이 하기 위해서 영어로 일기를 쓴다. 또, 남들이 자신의 일기장을 보는 것을 막기 위해서 모음('a','e','i www.acmicpc.net 👨🏻💻 문제 풀이 창영이는 남이 일기장을 보는 것을 막기 위해서 모음 ( 'a' , 'e', 'i', 'o', 'u' ) 다음에 'p'를 하나쓰고 그 뒤에 모음을 하나더 씁니다. "kemija" 의 경우 ke 다음에 pe가 붙고 ja 뒤에 pa 가 붙어 "kepemipijapa" 가 됩니다. 우리는 "kepemipijapa" 를 "kemija" 로 바꾸어야합니다. 먼저 모음인지 아닌..
코딩 1일 1문제! 오늘의 문제는 백준의 회의실 배정입니다. 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 👨🏻💻 문제 풀이 이 문제는 비교적 쉽게 문제를 풀 수 있습니다. 이 힌트를 보고 생각난 방법입니다. 보면 시작시간과 끝시간이 가지런히 정렬 되어있는 것을 볼 수 있습니다. 그럼 정렬은 어떤 기준으로 해야하느냐! 먼저 문제 속 기준을 보아야합니다. 회의실의 개수 == 1개 회의가 시작하면 중간에 중단될 수 없음 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있음 이때 시작시간과 끝 시간은 같을 수 있음 회의실의 개수는 하나이고 회의가 시작하면 중간에 중단될 수 없으므로 빠르게 끝나는 회의 일수록 더 많은 회의가 ..
코딩 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문제! 오늘의 문제는 백준의 CCW 입니다. 11758번: CCW 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. www.acmicpc.net Solution def convert_input_to_point(string): point_x, point_y = map(int, string.split()) return {"x": point_x, "y": point_y} def CCW(point1, point2, point3): answer = 0 y = (point2['x'] - poi..
코딩 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문제! 오늘의 문제는 백준의 진수 변환기 입니다. 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문제! 오늘의 문제는 백준의 좋은 단어입니다. 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문제! 드디어 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 = ..