일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- AI 경진대회
- 프로그래머스 파이썬
- Real or Not? NLP with Disaster Tweets
- 자연어처리
- gs25
- 편스토랑
- 더현대서울 맛집
- 파이썬
- programmers
- 프로그래머스
- leetcode
- Baekjoon
- 맥북
- 우분투
- SW Expert Academy
- Git
- PYTHON
- Kaggle
- 백준
- ChatGPT
- dacon
- github
- 금융문자분석경진대회
- hackerrank
- 코로나19
- 캐치카페
- ubuntu
- 편스토랑 우승상품
- 데이콘
- Today
- Total
목록
반응형
백준 (399)
솜씨좋은장씨
코딩 1일 1문제! 오늘의 문제는 백준의 문자열입니다. 9086번: 문자열 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으 www.acmicpc.net Solution def print_first_last(string): print(string[0] + string[-1]) if __name__ == "__main__": for _ in range(int(input())): string = input() print_first_last(string) Solution 풀이 맨 처음 입력 받은 수 만큼 문자열을 입력 받고 마지막 값을 접근하는 -1 인덱스를 ..
코딩 1일 1문제! 오늘의 문제는 백준의 저항입니다. 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다. www.acmicpc.net Solution def get_resistance(colors, resistance_info): return int(str(resistance_info[colors[0]][0]) + str(resistance_info[colors[1]][0])) * resistance_info[colors[2]][1] if __name__ == "__main__": resistance_dict = { "black": [0, 1], "brown": [1, 10], "red": [2, 100]..
코딩 1일 1문제! 오늘의 문제는 크로아티아 알파벳 입니다. 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net Solution def replace_croatia_alphabet_to_x(input_str): croatia_alphabet = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="] for croatia_alpha in croatia_alphabet: input_str = input_str.replace(croatia_alph..
코딩 1일 1문제! 오늘의 문제는 백준의 등장하지 않는 문자의 합입니다. 3059번: 등장하지 않는 문자의 합 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성되어 있고, 문자열 S가 주어진다. S는 알파벳 www.acmicpc.net Solution def get_not_appearing_word_sum(input_list): input_str_ascii_list = set([ord(char) for char in input_list]) not_appearing = [num for num in range(ord('A'), ord('Z') + 1) if num not in input_str_ascii_lis..
코딩 1일 1문제! 오늘의 문제는 백준의 이름궁합 테스트 입니다. 17269번: 이름궁합 테스트 시윤이는 좋아하는 이성이 생기면 가장 먼저 이름궁합부터 본다. 이름궁합을 보는 방법은 간단하다. 먼저 이름을 알파벳 대문자로 적는다. 각 알파벳 대문자에는 다음과 같이 알파벳을 적는데 www.acmicpc.net Solution def get_compatibility_str(name1, name2, N, M): compatibility_str = "" temp = "" if N M: temp = name1[M:] for i in range(min(N, M)): compatibility_str = compatibility_str + name1[i] + name2[i] return compatibility_str..
코딩 1일 1문제! 오늘의 문제는 백준의 지영 공주님의 마법 거울 입니다. 11586번: 지영 공주님의 마법 거울 천나라 민호성의 지영 공주님은 매우 아름답다. 공주님 자신도 이 세상 그 누구보다 자신이 아름답다는 것을 알고 있다. 공주님은 자신의 아름다움이 세월의 저편으로 사라지는 것을 매우 두려 www.acmicpc.net Solution def magic_mirror(jiyoung_list, mind_num): if mind_num == 2: for i in range(len(jiyoung_list)): jiyoung_list[i] = jiyoung_list[i][::-1] elif mind_num == 3: jiyoung_list = jiyoung_list[::-1] return jiyoung_l..
코딩 1일 1문제! 오늘의 문제는 백준의 열 개씩 끊어 출력하기입니다. 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net Solution input_string = input() string_length = len(input_string) for i in range(0, string_length, 10): print(input_string[i:i+10]) Solution 풀이 문자열을 입력받고 길이를 구한다음 10개씩 슬라이싱해서 출력하도록 하면 끝! 궁금한점 사실 이문제는 굳이 다른 방법으로도 풀어봤는데 왜 틀렸는지 잘 모르겠어서 올려보는 ..
코딩 1일 1문제! 오늘의 문제는 백준의 뒤집힌 덧셈입니다. 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net Solution def Rev(num): return num[::-1] if __name__ == "__main__": num1, num2 = input().split() print(int(Rev(str(int(Rev(num1)) + int(Rev(num2)))))) Solution 풀이 문자열을 거꾸로 뒤집는 방법인 [::-1] 을 문제에서 나온 함수이..
코딩 1일 1문제! 오늘의 문제는 백준의 윤년 입니다. 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net Solution year = int(input()) if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0): print(1) else: print(0) Solution 풀이 먼저 년도를 입력받습니다. 입력받은 년도가 400배수 이거나 4의배수이면서 100의 배수가 아닐경우에는 1을 출력하도록 그렇지 않을 경우에는 0을 출력하도록 합니다. SOMJANG..
코딩 1일 1문제! 오늘의 문제는 백준의 직사각형에서 탈출 입니다. 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net Solution x, y, w, h = list(map(int, input().split())) print(min([x, y, w-x, h-y])) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on..
코딩 1일 1문제! 오늘의 문제는 백준의 베르트랑 공준 입니다. 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net Solution def getPrimaryNum_Eratos(N): nums = [True] * (N) for i in range(2, int(N**0.5) + 1): if nums[i] == True: for j in range(i+i ,N, i): nums[j] = False return [i for i in range(2, N) if nums[i] == True] while True: ..
코딩 1일 1문제! 오늘의 문제는 백준의 곱셈입니다. 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net Solution num1 = int(input()) num2 = input() for num in list(num2[::-1]): print(num1 * int(num)) print(num1 * int(num2)) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub. github.com
코딩 1일 1문제! 오늘의 문제는 백준의 직각삼각형입니다. 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net Solution import math while True: input_nums = input() if input_nums == "0 0 0": break triangle = list(map(int, input_nums.split())) triangle.sort() if int(math.sqrt(pow(triangle[0], 2) + pow(triangle[1], 2))) == triangle[2]: print("right..
코딩 1일 1문제! 오늘의 문제는 백준의 평균은 넘겠지! 입니다. 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net Solution for _ in range(int(input())): numbers = list(map(int, input().split())) avg = sum(numbers[1:]) / numbers[0] avg_high_score = [score for score in numbers[1:] if score > avg] rate = len(avg_high_score) / numbers[0] * 100 print(f'{rate:.3f}%') SOMJANG/CODINGTES..
코딩 1일 1문제! 오늘의 문제는 백준의 최댓값 입니다. 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net Solution numbers = [] for _ in range(9): num = int(input()) numbers.append(num) max_num = max(numbers) index = numbers.index(max_num) + 1 print(max_num) print(index) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 202..
코딩 1일 1문제! 오늘의 문제는 설탕배달 입니다. 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net Solution sugar = int(input()) delivery = 0 while sugar >= 0 : if sugar % 5 == 0 : delivery = delivery + (sugar // 5) print(delivery) break sugar = sugar - 3 delivery = delivery + 1 else : print(-1) SOMJANG/CODINGTEST_PRACTICE 1일 1문제 sinc..
코딩 1일 1문제! 오늘의 문제는 사분면 고르기 입니다. 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net Solution def get_quadrant_info(x, y): info = 0 if x > 0 and y > 0: info = 1 elif x 0: info = 2 elif x 0 and y < 0: info = 4 return info if __name__ == "__main__": x = int(input()) y = int(input()) print(get_quadrant_info(x, y)) SOMJANG/CODINGTEST_P..
코딩 1일 1문제! 오늘의 문제는 백준의 한수입니다. 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net Solution def get_hansu_num(N): if N < 100: hansu = N else: hansu = 99 for i in range(100, N+1): num_list = list(map(int, str(i))) if num_list[0] - num_list[1] == num_list[1] - num_list[2]: hansu += 1 return hansu if __name__ == "__m..
문제를 탐색하다가 귀여운 문제가 있어서 풀어봤습니다. 바로 백준의 고양이 입니다. 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net Solution cat = """\ /\ ) ( ') ( / ) \(__)|""" print(cat) Solution 풀이 따옴표 세 개로 여러 라인을 한번에 표현하도록 하였고 출력해야하는 고양이를 만든 다음에 출력하도록 했습니다. 얼굴 맨위 귀 부분에 \ 다음 space를 추가해주면 귀여운 고양이가 나옵니다. SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an accou..
코딩 1일 1문제! 오늘의 문제는 백준의 평균입니다. 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net Solution import sys input_num = int(input()) scores = list(map(int, input().split())) max_score = max(scores) new_scores = [ score / (max_score * 100) for score in scores ] print(sum(new_scores) / input_num * 10000) Solution 풀이..
코딩 1일 1문제! 오늘의 문제는 백준의 숫자의 개수입니다. 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net Solution 1 num1 = int(input()) num2 = int(input()) num3 = int(input()) x_num = list(str(num1 * num2 * num3)) answer = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for num in x_num: answer[int(num)] += 1 for ans in answer: print(ans) Solution 풀이 먼저 숫자 세개를 입력 받습니다. 그 다음 세개..
코딩 1일 1문제! 오늘의 문제는 백준의 통계학 입니다. 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net Solution from collections import Counter numbers = [] for _ in range(int(input())): num = int(input()) numbers.append(num) numbers.sort() cnt = Counter(numbers).most_common(2) print(round(sum(numbers) / len(numbers))) print(numbers[len(..
코딩 1일 1문제! 오늘의 문제는 백준의 단어의 개수 입니다. 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 www.acmicpc.net 첫번째 시도 string = input() print(len(string.split(" "))) 이렇게 쉬운문제가 왜...? 왜....? 정답비율이 28.638% 이지? 라는 생각으로 호기롭게 제출을 했으나...! 롸....?...? 왜 틀렸지...? 그러다 문제를 다시보니 문자열의 앞과 뒤에 공백이 있을 수도 있다! 이게 적혀있었습니다. 두번째 시도 string = input() print(le..
코딩 1일 1문제! 오늘의 문제는 백준의 네 번째 점 입니다. 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net Solution x_points, y_points = [], [] return_x, return_y = None, None for _ in range(3): x_point, y_point = input().split() x_points.append(x_point) y_points.append(y_point) for i in range(3): if x_points.count(x_points[i]) == 1: return_x = x_points[i] if y_points.count(y..
코딩 1일 1문2제! 오늘의 문제는 백준의 팰린드롬수입니다. 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net Solution while True: input_num = input() if input_num == "0": break answer = "no" if input_num == input_num[::-1]: answer = "yes" print(answer) Solution 풀이 0이 입력될때까지 계속 입력받습니다. 먼저 출력할 answer에 no를 넣어둡니다. 입력받은수를 거꾸로 뒤집어도 입력받은 수와 동일해야 팰린드..
코딩 1일 1문제! 오늘의 문제는 백준의 숫자 카드 2 입니다. 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 첫번째 시도 from collections import Counter input_num = int(input()) numbers = list(map(int, input().split())) input_num2 = int(input()) numbers2 = list(map(int, input().split())) answer = [] cnt = Counter(numbe..
코딩 1일 1문제! 오늘의 문제는 백준의 OX퀴즈 입니다. 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net Solution for _ in range(int(input())): ox_string = list(input()) answer = 0 score = 0 for ox in ox_string: if ox == 'O': score += 1 answer += score elif ox == "X": score = 0 print(answer) SOMJANG/CODINGTEST_PRACTICE ..
코딩 1일 1문제! 오늘의 문제는 백준의 수 찾기 입니다. 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net Solution input_num = int(input()) numbers = list(map(int, input().split())) numbers.sort() input_num2 = int(input()) numbers2 = list(map(int, input().split())) for num in numbers2: left, right = 0, le..
코딩 1일 1문제! 오늘의 문제는 백준의 더하기 사이클입니다. 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net Solution input_num = temp = int(input()) cnt = 0 while True: num1 = temp // 10 num2 = temp % 10 sum_num = num1 + num2 temp = int(str(num2) + str(sum_num % 10)) cnt += 1 if input_num == temp: break print(cnt) Solution ..
코딩 1일 1문제! 오늘의 문제는 백준의 상수 입니다. 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net Solution num1, num2 = input().split(" ") sangsu1, sangsu2 = int(num1[::-1]), int(num2[::-1]) if sangsu1 > sangsu2: print(sangsu1) else: print(sangsu2) Solution 풀이 먼저 두 숫자를 input으로 입력받은 후에 split(" ")를 활용하여 입력받은 숫자를 공백으로 나누어 줍니다. 나눈 숫자를 각..