전체 글

전체 글

    [백준 14681번-파이썬/Python] 사분면 고르기

    http://acmicpc.net/problem/14681 {코드} x = int(input()) y = int(input()) if x > 0: print(1 if y > 0 else 4) else: print(2 if y > 0 else 3) {설명} 간단한 수학 문제로 x와 y의 부호에 따라 아래 표에 맞게 해당하는 사분면을 출력하면 된다. 이와 별개로 x나 y가 0이라면 어떠한 사분면에도 속하지 않으나 조건에서 0인 경우는 없다고 명시되어 있으므로 무시한다. x y 사분면 양수 양수 1 양수 음수 4 음수 양수 2 음수 음수 3

    [백준 2753번-파이썬/Python] 윤년

    http://acmicpc.net/problem/2753 {코드} year = int(input()) if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: print(1) else: print(0) # 조건연산자를 사용한 코드 print(1 if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 else 0) {설명} 이 문제는 전형적인 if문 문제로 조건문 한 줄로 풀 수 있는 문제입니다. 결국 4의 배수일때 100의 배수가 아니거나 400의 배수면 윤년이 되는 것을 잘 파악하면 됩니다. (문제에 적혀있는 거랑 다르지 않습ㄴ..)

    [백준 9498번-파이썬/Python] 시험 성적

    http://acmicpc.net/problem/9498 {코드} score = int(input()) if score >= 90: print('A') elif score >= 80: print('B') elif score >= 70: print('C') elif score >= 60: print('D') else: print('F') {설명} 지난 글에선 조건 연산자(삼항 연산자)를 통해 두 수를 비교하는 문제를 풀었습니다. 이번에도 똑같이 조건연산자를 사용할 수는 있으나 확인해야 하는 조건이 많아서 코드 줄이 길어지거 가독성이 떨어집니다. 그래서 이번에는 일반적인 조건문을 통해 풀어보았습니다.

    [백준 1330번-파이썬/Python] 두 수 비교하기

    http://acmicpc.net/problem/1330 {코드} a, b = map(int, input().split()) print('>' if a > b else '

    [백준 2588번-파이썬/Python] 곱셈

    http://acmicpc.net/problem/2588 {코드} A = int(input()) B = input() for digit in B[::-1]: # reversed(B)도 가능 print(A*int(digit)) print(A*int(B)) {설명} 입력의 첫 번째 수를 A, 두 번째 수를 B라고 가정하면 출력은 A*(B의 각 자릿수) 에다가 A*B를 출력하면 된다. 그러면 A를 정수로 입력받고 B를 문자열로 받으면 B를 반복문에 넣어 int함수를 통해 곱하면 됩니다. 이때 일의 자리 숫자부터 곱한 결과를 출력해야 하므로 B를 반전시켜 반복해야 합니다.

    [백준 10430번-파이썬/Python] 나머지

    http://acmicpc.net/problem/10430 {코드} a, b, c = map(int, input().split()) print((a+b)%c) print(((a+c)+(b+c))%c) print((a*b)%c) print(((a%c)*(b%c))%c) {설명} 이 문제는 출력 조건에 있는 것처럼 3개의 정수로 만들어진 4가지의 값을 출력하기만 하면 되는 문제입니다. 입력은 한줄에 주어지므로 map을 통해 정수로 입력받으면 됩니다.

    [백준 10869번-파이썬/Python] 사칙연산

    http://acmicpc.net/problem/10869 {코드} a, b = map(int, input().split()) print(a+b) print(a-b) print(a*b) print(a//b) print(a%b) {설명} 이 문제는 지난 4개의 글을 한문제로 합친 것과 같습니다. 결국 map함수를 통해 정수 두개를 입력받고 문제가 요구하는 각 연산을 실행하면 되는 문제입니다.. 이때, /, 즉 나눗셈은 목 연산이므로 //를 써야하고 나머지 연산을 위해 %를 사용하면 각 연산당 한줄씩 출력하면 됩니다. {코드} numbers = input().split() operators = ['+', '-', '*', '//', '%'] for operator in operators: print(eval..

    [백준 1008번-파이썬/Python] A/B

    http://acmicpc.net/problem/1008 {코드} a, b = map(int, input().split()) print(a/b) {설명} 정수인 숫자 두개가 한줄에 입력받으므로 map함수를 사용한다. 파이썬은 정수간의 나눗셈에서 /를 사용하면 실수결과를 반환하고 //를 쓰면 나눗셈의 몫을 반환한다. 그러므로 print문 안에 /를 통해 출력하면 된다. 파이썬은 소수를 반복되기 전까지는 전부, 반복된다면 반복되는 부분을 추가로 16자리까지 출력하므로 오차범위를 생각할 필요가 없다. {코드} print(eval('/'.join(input().split()))) {설명} 이걸 파이토닉(Pythonic-파이썬스럽게 만드는 것)하게 만들자면, 파이썬에는 기본적으로 eval이라는 함수가 주어집니다...