반응형 파이썬기초13 코딩테스트 9일차(2025.01.23) - 11021번(A+B - 7) 내 풀이첫번째 줄 연산갯수나머지 N줄 둘이 더하기단, Case #x: 로 되어있어야함 import sys# 첫째줄 입력받기input = sys.stdin.readlineT = int(input().rstrip())# 나머지 줄 인식 및 연산for i in range(1, T+1): A, B = map(int, input().rstrip().split()) print(f"Case #{i}: {A + B}")결과: 정답더 옳은 정답import sysinput = sys.stdin.readlineT = int(input().rstrip()) # 테스트 케이스 개수 입력for i in range(1, T + 1): # 테스트 케이스 번호는 1부터 시작 A, B = map(int, input.. 2025. 1. 23. 코딩테스트 8일차(2025.01.22) - 15552번(빠른 A+B) 여기서 말하는 사항은 다음과 같다. 1. input() 대신 sys.stdin.readline() 사용기본적으로 Python의 input()은 입출력 속도가 느리다. 대신 sys.stdin.readline()을 사용하면 속도를 높일 수 있다. 다만, 이 방식은 입력된 문자열의 끝에 개행 문자(\n)가 포함되므로, 문자열로만 저장하려면 .rstrip()을 사용해 개행 문자를 제거해야 한다.import sys# 기본 input() 방식value = input()# sys.stdin.readline() 방식 (개행 문자 제거)value = sys.stdin.readline().rstrip() 2. 입출력 스트림을 효율적으로 처리 또한 입력과 출력을 나누어서 처리할 필요가 없다. 테스트케이스를 전부 입력받아 .. 2025. 1. 22. 코딩테스트 8일차(2025.01.22) - 25314번(코딩은 체육과목 입니다) 내 풀이long int -> 4바이트 long long int -> 8바이트 나눗셈을 사용하는 반복문을 사용해야겠다. # 받아주는 값A = int(input())# long 갯수 구하기count = A // 4 # long 구하기result = count * "long "#결과print(f"{result}int")결과: 정답더 옳은 정답n = int(input())print("long " * (n//4 - 1) + "long int") 더 간결하고 가독성있게 하는 방법은 위와 같은 방법이다. 항상 가독성, 간결성을 생각하도록 하자 고찰실제로 위와 같은 질문을 면접에서 하면 어떻게 반응해야할까? C++에서 정수 자료형의 크기는 다음과 같이 처리된다: 4바이트가 필요한 경우: long int8바이트가 필요한.. 2025. 1. 22. 코딩테스트 8일차(2025.01.22) - 25304번(영수증) 내 풀이첫재 줄에는 영수증에 적힌 총 금액 X둘째 줄에는 영수증이 적힌 구매한 물건의 종류의 수 N이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어진다. 일치하면 Yes 불일치시 No 출력 # 첫번째 줄 받는 값total = int(input())# 두번째 줄 받는 값count = int(input())real_total = 0# 계산for _ in range(count): A, B = map(int, input().split()) real_total += A * B# 계산 검토if real_total == total: print("Yes")else: print("No")결과: 정답더 옳은 정답# 영수증에 적힌 총 금액total = int(input()).. 2025. 1. 22. 코딩테스트 8일차(2025.01.22) - 8393번(합) 내 풀이n이 주어졌을 때 1부터 n까지의 합을 구하는 프로그램 작성수학수식 사용 n(n+1)/2T = int(input())# 수학수식 사용# n(n+1)/2result = T*(T+1)/2 print(result)결과: 틀림정답n = int(input())print(n * (n + 1) // 2)n = int(input())print(sum(range(1, n + 1)))틀린 이유식은 맞았으나 연산자에 대한 지식이 부족했다. /2와 //2와는 많은 점에서 틀리다. 현실적으로 보았을 때는 나누기 2가 무엇이 틀렸는가 싶지만 컴퓨터 상에는 float형 즉, 실수형의 데이터는 5를 나누면 2.5가 아니라 2.50000002이렇게 값이 나타나기 때문에 이점을 꼭 인지할 필요가 있다. 그렇기 떄문에 항상 .. 2025. 1. 22. 코딩테스트 8일차(2025.01.22) - 10950번(A+B - 3) 내 풀이첫째 줄에 테스트 케이스의 개수 T나머지에는 계산 식단, 0 > A, B count = int(input())while count > 0: A, B = map(int, input().split()) count = count - 1 print(A + B)결과: 정답더 옳은 정답# 테스트 케이스 개수 입력받기T = int(input())# T번 만큼 반복for _ in range(T): # 한 줄에서 두 정수를 입력받아 분리하기 A, B = map(int, input().split()) # 두 수의 합 출력 print(A + B) 이와 같은 방법도 사용이 가능하다. 아까전과는 다르게 줄1개가 있는가 없는가 차이가 있다. 더욱 이상적인 코드는 간결하고 가독성이 .. 2025. 1. 22. 이전 1 2 3 다음 반응형