개인활동/코테(56)
-
백준 1427번 : 소트인사이드
1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net num = sorted(list(input()), reverse=True) print(*(i for i in num), sep='') asterisk를 이용해 unpacking 후 sep='' 구분자를 이용해 공백 없이 출력하도록 한다 sorted를 이용하면 쉽게 정렬이 가능해서 bb print(*sorted(input())[::-1],sep='') 숏코드의 경우 거의 비슷했다 다만 reverse=True 옵션 대신 정렬 수 [::-1]을 이용해 내림차순으로 정렬한다 그냥 input을 받아도 자동으로 정렬을 하게 된다 신기하군~
2024.01.21 -
백준 2587번 : 대푯값
2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 쉬운 문제다 어려운 문제를 풀어버릇 해야하는데 하던 일들이 좀 마무리 되면 어려운 문제들을 붙잡고 풀어봐야겠다 num_list = sorted(list(int(input()) for _ in range(5))) print(f"{int(sum(num_list) / 5)}\n{num_list[2]}") 내 코드도 설명할 부분이 딱히 없다. 입력받자마자 바로 정렬해서 num_list에 넣어주고, 평균값과 중앙값을 뽑아준다. 문제에..
2024.01.12 -
백준 2750 : 오름차순 정렬
2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 엔터로 입력받은 n개의 수를 오름차순 정렬하는 문제 굉장히 쉽다 왜냐? python에는 sort 함수가 있기 때문 n = int(input()) num_list = list(int(input()) for _ in range(n)) num_list.sort() for i in range(n): print(num_list[i]) 그래서 이 문제는 내 코드 설명보다는 숏코드 분석에 집중해보려고 한다. print(*sorted(map(int,[*open(0)][1:]))) 먼..
2024.01.12 -
10798번 : 세로읽기
10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 입력받은 값을 열별로 읽어와 차례대로 한줄로 출력하는 문제이다. 이때 한 행에 들어가는 데이터의 수가 최소 1개, 최대 15개이다. 이 부분을 어떻게 해결할 것인가가 가장 큰 포인트 오늘도 머리가 안돌아가 gpt의 코드 수정 서비스를 받아봤다. matrix = [] max_length = 0 # 최대 행 길이를 저장할 변수 # 입력 받으면서 최대 행 길이를 찾음 for i in range(5): row = list(map(str, input().strip(..
2024.01.06 -
2556번 : 최댓값
2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 9*9 행렬을 입력받고, 이 행렬에서 최댓값과 인덱스를 찾아 출력하는 문제이다. matrix = [list(map(int, input().split())) for _ in range(9)] max_list = [] ### max값 뽑아내기 위해 각 행을 뽑아내고 max값 뽑기 for i in range(9): max_list.append(max(matrix[i])) print(max(max_list)) ### 인덱스 추출을 위해 중첩 for문 이용 for row in range(9..
2024.01.04 -
백준 2738번 : 행렬 덧셈
# 행렬의 크기 N, M 입력 N, M = map(int, input().split()) # 행렬 A 입력 matrix_A = [list(map(int, input().split())) for _ in range(N)] # 행렬 B 입력 matrix_B = [list(map(int, input().split())) for _ in range(N)] # 행렬 A와 B를 더한 결과 행렬 계산 result_matrix = [[0] * M for _ in range(N)] for i in range(N): for j in range(M): result_matrix[i][j] = matrix_A[i][j] + matrix_B[i][j] # 결과 출력 for row in result_matrix: print(' '..
2024.01.02 -
백준 11718번: 그대로 출력하기
while True: try: print(input()) except: break 이 문제의 문제점은 몇줄이 입력될지 모른다는 것이였다. 그래서 여기저기 서치를 해본 결과, 다음과 같은 코드를 여러번 볼 수 있었다. 아무래도 언제 입력이 끝날지 모르다보니 무한루프를 쓰기 싫었지만.. 무한루프 말고는 생각나는 방법이 없었다. 그리고 백준에서는 시간제한이 있었기 때문에 런타임에러가 걸리면 자동으로 종료가 된다. 그 예외처리를 다음과같이 해준 것으로 판단된다. print(open(0).read()) 숏코드는 이러하다 파이참에서 테스트를 하는 경우 open(0).read()를 하는 경우 input으로 넣어줄 것을 다 넣어줘도 끝나지 않는다. import sys print(sys.stdin.read()) 또 다른..
2023.09.13 -
백준 5622번: 다이얼
s = [*map(str, input())] sec = 0 for i in s: if i == 'A' or i == 'B' or i == 'C': sec += 3 elif i == 'D' or i == 'E' or i == 'F': sec += 4 elif i == 'G' or i == 'H' or i == 'I': sec += 5 elif i == 'J' or i == 'K' or i == 'L': sec += 6 elif i == 'M' or i == 'N' or i == 'O': sec += 7 elif i == 'P' or i == 'Q' or i == 'R' or i == 'S': sec += 8 elif i == 'T' or i == 'U' or i == 'V': sec += 9 elif i ..
2023.09.07 -
백준 2908번: 상수
a, b = input().split() a = a[::-1] b = b[::-1] if int(a) > int(b): print(a) else: print(b) 상수를 뒤바꿔서 크기를 비교해보는 문제이다 reversed를 이용하려고 했지만 reversed는 리스트에서 사용할 수 있는 함수이기에 다른 방식을 이용했다 일단 [::-1]의 의미는 처음부터 끝까지 볼 것이지만 step은 왼쪽에서 오른쪽이 아닌 오른쪽에서 왼쪽으로 보겠다는 의미이다 1학년때 이 슬라이싱 방법을 제대로 이해 못해서 애먹었던 기억이 있었는데, 이렇게 사용하다니 그리고 숏코드를 보고 충격먹었다. print(max(input()[::-1].split())) 이렇게 한줄로 표현할 수 있다는 사실이 굉장히 신기하다.
2023.09.06 -
백준 1152번: 단어의 개수
s = [*map(str, input().split())] print(len(s)) 단어를 입력받아 갯수를 출력하는 문제 왜인지 모르겠으나 이렇게 풀었는데 아래와 같은 숏코드로 풀면 되었는데 왜 나는 저렇게 풀었는가 입력받은 데이터 저장하고 출력하는건 나쁘지 않은 것 같다. 어떻게 이용될지 모르니! print(len(input().split()))
2023.09.06