알고리즘 공부를 위해 코드업 사이트(https://codeup.kr/)의 기초 100제를 시작합니다.

블로그에 올라온 모든 코드는 파이썬(Python)으로 작성되어 있습니다.   

 

Python의 기초 100제를 확인하기 위해서는 다음 사이트로 이동하면 됩니다. 

https://codeup.kr/problemsetsol.php?psid=33 

 

문제집 / Python 기초 100제

 

codeup.kr

 

6041 : [기초-산술연산] 정수 2개 입력받아 나눈 나머지 계산하기(설명)(py)

정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.

 

▷ 참고

python 언어에서는 나눈 나머지를 계산하는 연산자(%, remainder)를 제공한다.
a%b 와 같이 작성하면, a를 b로 나눈 나머지(remainder)를 계산해준다.
나머지 연산(modulus, mod 연산)은 수학자 가우스가 생각해 낸 연산으로,
어떤 수를 다른 수로 나누고 난 후 남는 나머지를 계산하는 연산이다.

실수로 나눈 나머지가 어떻게 계산될지도 생각해보자.

 

 

▷ 해설

코드를 짤때 나머지를 구하는 %는 자주 사용된다.

주로 사용되는 방법으로는 홀수는 2로 나눈 나머지 값이 1 이므로  n % 2 == 1 짝수는 2로 나눈 나머지 값이 0 이므로 n % 2 == 0이 된다. 

a, b = input().split()
c = int(a) % int(b)

print(c)

 

6042 : [기초-값변환] 실수 1개 입력받아 소숫점이하 자리 변환하기(설명)(py)

실수 1개를 입력받아
소숫점 이하 두 번째 자리까지의 정확도로 반올림한 값을 출력해보자.

 

▷ 참고

format(수, ".2f") 를 사용하면 원하는 자리까지의 정확도로 반올림 된 실수 값을 만들어 준다.

여기서 만들어진 값은 소수점 아래 3번째 자리에서 반올림한 값이다.

컴퓨터 프로그래밍에서 실수 변환이나 실수를 사용하는 계산은
정확하게 변환되거나 계산되는 것이 아니라, 거의 모두 근사값으로 계산되는 것이라고 할 수 있다. 

실수가 컴퓨터로 저장되기 위해서는 디지털방식으로 2진 정수화되어 저장되어야 하는데,
그 과정에서 아주 작은 부분이 저장되지 않고 사라지는 잘림(truncation) 오차가 자주 발생하기 때문이다.

 

▷ 해설

포맷팅 방법으로 실수의 표현방식을 정할 수 있다.

실수의 포맷팅은 format(0.222222, ".4f") 다음과 같이 이용하면 소수점 아래 5자리에서 반올림한 값인 소수점 4자리 까지의 결과인 0.2222가 나온다.

 

python 3부터는 format의 경우 str에서 자주 사용된다. str.format(문자열 중간에 들어갈 문자,...)

"Python {} Hello {} ".format(3, "World")

다음과 같이 문자열의 중괄호({})부분에 format함수에 넣은 값이 차례대로 들어간다.

쉼표(,)로 들어갈 문자를 구분하며 숫자의 경우 따옴표(")를 생략해도 되지만 문자는 반드시 따옴표로 구분해야한다. 

f = float(input())
print(format(f,".2f"))

 

6043 : [기초-산술연산] 실수 2개 입력받아 나눈 결과 계산하기(py)

실수 2개(f1, f2)를 입력받아
f1 을 f2 로 나눈 값을 출력해보자. 이 때 소숫점 넷째자리에서 반올림하여 무조건 소숫점 셋째 자리까지 출력한다.

 

▷ 참고

python 언어에는 나눗셈(division)을 계산하는 연산자(/)가 있다.

컴퓨터 프로그래밍에서 실수 변환이나 실수를 사용하는 계산은 
정확하게 변환되거나 계산되는 것이 아니라, 거의 모두 근사값으로 계산되는 것이라고 할 수 있다.  

실수가 컴퓨터로 저장되기 위해서는 디지털방식으로 2진 정수화되어 저장되어야 하는데, 
그 과정에서 아주 작은 부분이 저장되지 않고 사라지는 잘림(truncation) 오차가 자주 발생하기 때문이다.

계산 결과값 중에서 믿을 수 있는 숫자의 개수를 의미하는, 유효숫자에 대해 찾아보자. 
과학실험에서 온도나 부피를 측정할 때에도 유효숫자는 중요하다. 

 

▷ 해설

이번 문제에서는 앞에서 배웠던 두 수의 연산과 실수의 포맷팅에 대해서 다루고 있다.

문제를 풀기 위해 입력받은 값을 float형으로 바꾸는 형변환을 한뒤 두 실수를 나눠 준다 이후 format을 통해 소수점 아래 3자리만 출력하면 문제를 해결할 수 있다.

f1, f2 = input().split()
result = float(f1) / float(f2)

print(format(result, '.3f'))

 

6044 : [기초-산술연산] 정수 2개 입력받아 자동 계산하기(py)

정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
단 0 <= a, b <= 2147483647, b는 0이 아니다.

 

▷ 해설

python에서 쓸 수 있는 산술연산에 대해서 모두 구하면 된다.

단, 실수가 나오는 경우 소수점 두번째 자리까지 구한다는 출력조건이 존재하므로 정수의 연산에서 실수가 나올 수 있는 나눗셈은 포맷팅을 통해 출력 형식을 지정한다.

a, b = input().split()

a = int(a)
b = int(b)

add = a + b # 합 Add
sub = a - b # 차 Subtract
mul = a * b # 곱 Multiply
q = a // b  # 몫 Quotient
mod = a % b # 나머지 Modulo
div = a / b # 나눗셈 Divide

print(add)
print(sub)
print(mul)
print(q)
print(mod)
print(format(div,".2f"))

 

6045 : [기초-산술연산] 정수 3개 입력받아 합과 평균 출력하기(설명)(py)

정수 3개를 입력받아 합과 평균을 출력해보자.

 

▷ 참고

공백으로 구분된 한 줄로 값들을 입력받기 위해서는
a, b, c = input().split()
과 같은 방법이 가능하고,

공백으로 구분해 두 값을 출력하기 위해서는
print(d, e)
와 같은 방법이 가능하다.

잘라낸 값들은 그 값의 특성(정수, 실수, 문자, 문자열 ...)에 따라 명확하게 변환시킨 후 사용하는 것이 좋다.

python 프로그래밍을 처음 배울 때 좋은 습관(단계)
1. 입력된 문자열을 정확하게 잘라낸다.(공백, 줄바꿈, 구분문자 등에 따라 정확하게 잘라낸다.)
2. 잘라낸 데이터들을 데이터형에 맞게 변환해 변수에 저장한다. (정수, 실수, 문자, 문자열 등에 따라 정확하게 변환한다.)
3. 값을 저장했다가 다시 사용하기 위해, 변수를 이용해 값을 저장하고, 변수를 이용해 계산을 한다.
4. 원하는 결과 값을 필요한 형태로 만들어 출력한다.(공백, 줄바꿈, 구분자, 등에 따라 원하는 형태로 만들어 출력한다.)

 

▷ 해설

값을 모두 더한 뒤 입력 받는 변수의 갯수인 3으로 나눠주면 평균을 얻을 수 있다.

단, 전의 문제와 마찬가지로 출력조건이 붙어있는걸 확인할 수 있다. 그래서 평균을 구할때 포맷팅을 통해 소수점 두번째 자리까지 출력해야한다.

 

알고리즘 문제를 풀때 읽고 바로 푸는것 보다는 문제의 아래에 적혀있는 입력형식과 출력형식을 반드시 확인하고 코드를 짜는 습관을 들여야 문제가 틀리는 경우를 줄일 수 있다.

a, b, c = input().split()

sum = int(a) + int(b) + int(c)

print(sum, format(sum/3,'.2f'))

 

+ Recent posts