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

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

 

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

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6026 : [기초-값변환] 실수 2개 입력받아 합 계산하기(설명)(py)

실수 2개를 줄바꿈으로 입력받아
합을 출력하는 프로그램을 작성해보자.

 

▷ 참고

입력되는 값은 기본적으로 문자열로 인식된다.

숫자로 구성된 문자열이나 정수를 실수(real number) 값으로 바꾸기 위해서는 float( ) 를 사용할 수 있다.
소숫점(.)은 그 위치가 정해져있지 않고 이리저리 둥둥 떠다니므로, floating point라고 부른다.

 

▷ 해설

이전의 문제들과 같이 split()로 input()을 받게 되면 줄바꿈 문자('\n')를 나눌 수 없기 때문에 틀리게 된다.

그래서 두 개의 input()으로 나눠 값을 입력받으면 두 값의 합을 구하면 된다.

 

a = float(input())
b = float(input())
print(a+b)

 

6027 : [기초-출력변환] 10진 정수 입력받아 16진수로 출력하기1(설명)(py)

10진수를 입력받아 소문자 16진수(hexadecimal)로 출력해보자.

 

▷ 참고

10진수 형태로 입력받고
%x로 출력하면 16진수(hexadecimal) 소문자로 출력된다.
(%o로 출력하면 8진수(octal) 문자열로 출력된다.)

10진법은 한 자리에 10개(0 1 2 3 4 5 6 7 8 9)의 문자를 사용하고,
16진법은 영문 소문자를 사용하는 경우에 한 자리에 16개(0 1 2 3 4 5 6 7 8 9 a b c d e f)의 문자를 사용한다.
16진수 a는 10진수의 10, b는 11, c는 12 ... 와 같다.

 

▷ 해설

파이썬은 데이터를 형식에 맞추어 출력하는 포매팅(Formatting)이 가능합니다.

출력형식은 다음과 같습니다.

  • %s - 문자열(String)
  • %c - 문자 1개(character)
  • %d - 정수(Integer)
  • %f - 부동소수(floating-point)
  • %o - 8진수
  • %x - 16진수
  • %% - %(퍼센트문자)

'나는 %c요일이 좋다'%'금'

다음 코드를 실행하면 '나는 금요일이 좋다'가 된다.

문장이 끝난 뒤 % 뒤의 값을 넣는 것이 가능하다. 여러개의 값이 오면 순서대로 대입이 진행된다.

 

파이썬(Python 3)에만 적용되는 포매팅 함수인 format()가 있다.

'나는 %d%c요일이 싫다'.format(13, '금')

코드를 실행하면 '나는 13일의 금요일이 싫다'다 된다.

n = int(input())
print('%x'%n)

 

6028 : [기초-출력변환] 10진 정수 입력받아 16진수로 출력하기2(설명)(py)

10진수를 입력받아 대문자 16진수(hexadecimal)로 출력해보자.

 

▷ 참고

10진수 형태로 입력받고
%X로 출력하면 16진수(hexadecimal)대문자로 출력된다.

16진법은 영문 소문자를 사용하는 경우에 한 자리에 16개(0 1 2 3 4 5 6 7 8 9 A B C D E F)의 문자를 사용한다.
16진수 A는 10진수의 10, B는 11, C는 12 ... 와 같다.

 

▷ 해설

6027 문제와 같이 출력형식을 %X로 하면 쉽게 문제를 해결 가능하다.

n = int(input())
print('%X'%n)

 

6029 : [기초-값변환] 16진 정수 입력받아 8진수로 출력하기(설명)(py)

16진수를 입력받아 8진수(octal)로 출력해보자.

 

▷ 참고

8진법은 한 자리에 8개(0 1 2 3 4 5 6 7)의 문자를 사용한다.
8진수 10은 10진수의 8, 11은 9, 12는 10 ... 와 같다.

 

▷ 해설

입력된 10진수를 16진수로 변경하기 위해서 형변환을 할때 16진수로 변경해 준다.

n = int(input(), 16)
print('%o' % n)

 

6030 : [기초-값변환] 영문자 1개 입력받아 10진수로 변환하기(설명)(py)

영문자 1개를 입력받아 10진수 유니코드(Unicode) 값으로 출력해보자.

 

▷ 참고

n = ord(input())  #입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.

ord( ) 는 어떤 문자의 순서 위치(ordinal position) 값을 의미한다.  
실제로 각각의 문자들에는 연속된 정수 값이 순서에 따라 부여 되어 있다. A:65, B:66, C:67 .... 
ord(c) : 문자 c 를 10진수로 변환한 값 

컴퓨터로 저장되고 처리되는 모든 데이터들은 2진수 형태로 정수화 되어야 하는데,
컴퓨터에 문자를 저장하는 방법으로 아스키코드(ASCII Code)나 유니코드(Unicode)가 자주 사용된다.

예를 들어, 영문 대문자 'A'는 10진수 값 65 로 표현하고, 
2진수(binary digit) 값 1000001 로 바꾸어 컴퓨터 내부에 저장한다. 

유니코드(unicode)는 세계 여러 나라의 문자를 공통된 코드 값으로 저장할 때 사용하는 표준 코드이다.

 

▷ 해설

ord(문자)는 문자의 유니코드 값을 반환하는 함수이다.

n = ord(input())
print(n)

+ Recent posts