안녕하세요. 지난 포스팅의 BOJ 14681번 : 사분면 고르기에서는 복잡한 조건문을 가진 문제를 풀어보았습니다. 오늘은 조금 더 생각을 해보아야하는 문제를 풀어보도록 하죠. 핵심 포인트 조건문 문제를 보면 입력된 두 개의 시간(H)와 분(M)에서 45분을 뺀 시간을 시, 분의 형태로 출력해야합니다. 여기서 저희는 첫번째로 2가지 조건을 고려해볼 수 있겠죠. 현재 시간에서 45분을 뺐을 때 양수가 나오는 경우, 음수가 나오는 경우입니다. 여기서 음수가 나오는 경우에는 현재 시간(H)에서 1을 빼고 60분을 더해준 뒤 45분을 빼는 것이기 때문에 결과적으로 15분을 더하게 됩니다. 그런데 한가지 문제가 더 있습니다. 만약, 시간에서 1을 뺏는데 음수가 나오면 어떡하죠? 이 경우에는 현재 시각이 0시라는 것..
안녕하세요. 지난 포스팅의 BOJ 2753번 : 윤년에서는 복잡한 조건문을 가진 문제를 풀어보았습니다. 오늘도 유사한 문제를 풀어보도록 하죠. 지난 문제와 별 다른 점은 없으니 설명은 생략하도록 하겠습니다. 핵심 포인트 조건문 논리연산자 and x = int(input()) y = int(input()) if x > 0 and y > 0 : print(1) elif x 0 : print(2) elif x < 0 and y < 0 : print(3) else : print(4) 참고자료 및 그림출처 백준 코딩 문제
안녕하세요. 지난 포스팅의 BOJ 9498번 : 시험 성적에서는 조건문의 성질을 적용해서 더 간단하게 코드를 짜는 방법에 대해서 알아보았습니다. 오늘은 더욱 복잡한 조건이 들어간 문제를 풀어보도록 하겠습니다. 핵심 포인트 조건문 논리연산자 and 와 or 오늘의 핵심은 논리연산자 and와 or을 이해하는 것입니다. - and 연산자 : 두 개의 불(bool) 자료형(True 또는 False 만을 가지는 자료형)이 모두 True 일 때 True를 반환하는 연산입니다. - or 연산자 : 두 개의 불(bool) 자료형(True 또는 False 만을 가지는 자료형) 중 하나가 True 일 때 True를 반환하는 연산입니다. 이제 문제를 보도록 하죠. 윤년의 조건은 2가지입니다. - 연도가 4의 배수이면서 10..
안녕하세요. BOJ 1330번 : 두 수 비교하기에서는 조건문을 통해 문제를 해결해보았습니다. 중요한 점은 if문, elif문, else문을 적절하게 활용하는 것 이였습니다. 오늘도 조건문을 활용해서 문제를 풀어보도록 하겠습니다. 다만, 지난 포스팅의 문제보다 더 많은 조건문을 써야한다는 것을 제외하고는 쉽게 풀 수 있습니다. 핵심 포인트 조건문 조건문의 성질 : if문의 조건이 만족하지 않을 때 다음 조건문에서는 이전 조건문을 고려하지 않아도 된다. 문제에서는 90점 이상이면 "A", 80점 이상이면 "B", 70점 이상이면 "C", 60점 이상이면 "D", 59점 아래부터는 "F"를 출력하라고 하였습니다. 아마도 몇몇 분들은 아래와 같은 논리 연산자인 and를 활용하여 풀었을 겁니다. 여기서 and ..
안녕하세요. 지난 포스팅의 BOJ 2588번 : 곱셈에서는 입출력과 관련된 마지막 문제를 풀어보았습니다. 오늘부터는 조건문(if문)에 대한 문제를 풀어보도록 하겠습니다. 핵심 포인트 조건문 if condition_1 : do statement_1 elif condition_2 : do statement_2 ... else : do statement_n 먼저 조건문에 대해서 간단하게 알아보도록 하겠습니다. 위 의사코드(pseudocode)와 같이 조건문은 크게 2가지로 구성되어 있습니다. 먼저, 첫번째 조건문 if문은 condition_1을 검사합니다. condition_1을 만족하면 statement_1을 실행하라는 의미이죠. 만약, condition_1이 만족하지 않으면 statement_1은 실행되지..
안녕하세요. 지난 포스팅의 미적분학 - 벡터함수의 미분과 적분에서는 미적분을 벡터함수에서 어떻게 하는 지에 대해서 알아보았습니다. 결과적으로 벡터함수의 각 성분함수들에 대해서 미분과 적분을 해주면 되는 간단한 일이였습니다. 오늘은 이어서 벡터함수로 표현되는 공간곡선의 길이를 구하는 방법에 대해서 알아보겠습니다. 한편, 미적분학 - 매개변수와 미적분학 2에서 저희는 매개변수로 표현되는 함수의 곡선의 길이를 구하는 방법에 대해서 알아보았습니다. 예를 들어, 어떤 곡선 $C$가 $(x, y)$로 표현될 때, $a \le t \le b$에서 $x = f(t)$이고 $y = g(t)$라고 하면 곡선의 길이는 아래와 같이 구할 수 있습니다. $$L = \int_{a}^{b} \sqrt{\left(\frac{dx}{..
안녕하세요. 지난 포스팅의 BOJ 10430번 : 나머지에서는 파이썬 사칙연산들을 활용해서 문제를 해결하였습니다. 오늘도 사칙연산을 활용하지만 약간 더 복잡한 문제를 보도록 하죠. 핵심 포인트 입력함수 input 문자열 인덱싱 파이썬 기본 사칙연산 : 곱셈(*) 문제를 보시면 곱셈하는 과정에서 얻어지는 값들을 순서대로 출력해야함을 알 수 있습니다. 곱셈 규칙에 따르면 (3)에는 (1)에 (2)의 일의 자리 숫자를 곱한 결과가 되고, (4)는 십의 자리 숫자, (5)는 백의 자리 숫자입니다. 마지막으로 (6)에는 단순히 (1)과 (2)의 곱셈 결과를 출력하면 됩니다. 다만, 여기서 유의할 점은 입력을 한줄에 받는 게 아니라 다음줄에 받기 때문에 지난 포스팅들에서 사용했던 map(int, input().sp..
안녕하세요. 지난 포스팅의 BOJ 18108번 : 1998년생인 내가 태국에서는 2541년생?!에서는 형변환(str $\rightarrow$ int)하는 방법에 대해서 알아보았습니다. 오늘은 BOJ 10869번 : 사칙연산과 비슷한 문제로 파이썬 사칙연산들을 활용해서 문제를 해결해보도록 하겠습니다. 핵심 포인트 입력함수 input 문자열 자르기 함수 split 자료형 변환함수 map 파이썬 기본 사칙연산 : 덧셈(+), 곱셈(*), 나머지(%) 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) 참고자료 및 그림출처 백준 코딩 문제