6048. 두 정수(a, b)를 입력받아 a가 b보다 작으면 True 를, a가 b보다 크거나 같으면 False 를 출력하는 프로그램을 작성해보자.

예시
print(123<456)  #비교 연산자 < 의 계산 결과인 True(참)가 출력된다.
(123, 456 은 숫자로 작성된 단어이기 때문에 10진수로 인식된다.)

참고
어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.

비교/관계연산자 < (less than sign) 는
왼쪽의 값이 오른쪽 값 보다 작은 경우 True(참)로 계산하고,
그 외의 경우에는 False(거짓)로 계산한다.

비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고,
그 결과를 True(참), 또는 False(거짓)로 계산해 주는 연산자이다.

비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.

True(참) 또는 False(거짓) 값으로만 표현하고 저장하는 값을 불(bool)/불리언(boolean) 값이라고 한다.
정수, 실수, 문자, 문자열과 마찬가지로 또 다른 형태의 데이터형(data type)이다.

a, b = map(int, input().split())
if a < b:
  print(True)
elif a >= b:
  print(False)

* if / else / elif 비교

if     => 만약에

else => 만약에 그렇지 않으면

elif  => else if => 만약 그렇지 않으면 이건 어때?

출처: https://blockdmask.tistory.com/372 [개발자 지망생]


6049. 두 정수(a, b)를 입력받아 a와 b의 값이 같으면 True 를, 같지 않으면 False 를 출력하는 프로그램을 작성해보자.

참고
어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.

비교/관계연산자 == (equal sign 2개) 는
왼쪽의 계산 결과값과 오른쪽의 계산 결과값이 같은 경우 True(참)로 계산하고,
그 외의 경우에는 False(거짓)로 계산한다.

비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고,
그 결과를 True(참), 또는 False(거짓)로 계산해 주는 연산자이다.

비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.

** 수학에서 왼쪽과 오른쪽의 계산 결과가 같음(동치)을 나타내는 기호 =(equal sign) 1개는
프로그래밍언어에서는 전혀 다른 의미로 사용된다.

a = 1 와 같은 표현은 a와 1의 값이 같다는 의미가 아니라
오른쪽의 계산 결과값인 1을 왼쪽의 변수 a에 저장하라는 의미이다.

a, b = map(int, input().split())
if a == b :
  print(True)
elif a != b :
  print(False)

 

6050. 두 정수(a, b)를 입력받아 b의 값이 a의 값 보다 크거나 같으면 True 를, 같지 않으면 False 를 출력하는 프로그램을 작성해보자.

참고
어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.

비교/관계연산자 <= 는
오른쪽의 계산 결과값이 왼쪽의 계산 결과값보다 크거나 같은 경우 True(참)로 계산하고,
그 외의 경우에는 False(거짓)로 계산한다.

<=, >= 연산자는 같음(==)을 포함한다. 따라서 “작다/크다” 거나 "같다”는 의미를 가진다.
작다(<)/크다(>)/다르다(!) 기호는 등호(=)와 함께 왼쪽에 붙여써야 한다.

비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고,
그 결과를 True(참), 또는 False(거짓)로 계산해주는 연산자이다.
비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.

a , b  = map(int, input().split())
if b >= a:
  print(True)
elif b != a:
  print(False)

 

6051. 두 정수(a, b)를 입력받아 a의 값이 b의 값과 서로 다르면 True 를, 같으면 False 를 출력하는 프로그램을 작성해보자.

참고
어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.

비교/관계연산자 != 는
왼쪽의 계산 결과값이 오른쪽의 계산 결과값이 서로 다른 경우 True(참)로 계산하고,
그 외의 경우에는 False(거짓)로 계산한다.

비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고,
그 결과를 True(참), 또는 False(거짓)로 계산해주는 연산자이다.
비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.

a, b = map(int, input().split())
if a != b:
  print(True)
elif a == b:
  print(False)

6046. 정수 1개를 입력받아 2배 곱해 출력해보자.

참고
*2 를 계산한 값을 출력해도 되지만,
정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 <<, >>를 이용할 수 있다.
컴퓨터 내부에는 2진수 형태로 값들이 저장되기 때문에,
2진수 형태로 저장되어 있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로
지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 1/2로 줄어드는데,

왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고,
오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가되고,
가장 오른쪽에 있는 1비트는 사라진다.

예시
n = 10
print(n<<1)  #10을 2배 한 값인 20 이 출력된다.
print(n>>1)  #10을 반으로 나눈 값인 5 가 출력된다.
print(n<<2)  #10을 4배 한 값인 40 이 출력된다.
print(n>>2)  #10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.

정수 10의 2진수 표현은 ... 1010 이다.
10 << 1 을 계산하면 ... 10100 이 된다 이 값은 10진수로 20이다.
10 >> 1 을 계산하면 ... 101 이 된다. 이 값은 10진수로 5이다.

n = 10 과 같이 키보드로 입력받지 않고 직접 작성해 넣은 코드에서, 숫자로 시작하는 단어(식별자, identifier)는 자동으로 수로 인식된다.  

n = 10 에서 10 은 10진수 정수 값으로 인식된다.
변수 n 에 문자열을 저장하고 싶다면, n = "10" 또는 n = '10'으로 작성해 넣으면 되고,

 

n = 10.0 으로 작성해 넣으면 자동으로 실수 값으로 저장된다.
n = 0o10 으로 작성해 넣으면 8진수(octal) 10으로 인식되어 10진수 8값이 저장되고,
n = 0xf 나 n = 0XF 으로 작성해 넣으면 16진수(hexadecimal) F로 인식되어 10진수 15값으로 저장된다.

** python에서 실수 값에 대한 비트시프트 연산은 허용되지 않고 오류가 발생한다.
(실수 값도 컴퓨터 내부적으로는 2진수 형태로 저장되고 비트시프트 처리가 될 수 있지만, python 에서는 허용하지 않는다.) 

a = int(input())
print(a<<1)

 

6047.  정수 2개(a, b)를 입력받아 a를 2b배 곱한 값으로 출력해보자.
0 <= a <= 10, 0 <= b <= 10

예시
a = 2
b = 10
print(a << b)  #210 = 1024 가 출력된다.

참고
예를 들어 1 3 이 입력되면 1을 23(8)배 하여 출력한다.

a, b = map(int, input().split())
print( a<<b )

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

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

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

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

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

f1, f2 = map(float, input().split()) 
print(format((f1/f2), ".3f"))

 

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

a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)
print(a%b)
print((round(a/b, 2)))

round()는 반올림하는 함수이다.

ex) print((round(a/b, 2)))

 

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

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

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

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

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

a, b, c = map(int, input().split())  
d = (a+b+c)/3
print(a+b+c, format(d, ".2f"))

 

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


(예시)

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


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

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

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

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

a = round(float(input()), 2)
print(a)

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

6032. 입력된 정수의 부호를 바꿔 출력해보자.


(예시) 
... 
print(-n) 

(참고)
단항(unary) 연산자인 -(negative)를 변수 앞에 붙이면 부호가 반대인 값이 된다. 
a = -int(input())
print(a)


# a = int(input())
# print(-a)

 

6033. 문자 1개를 입력받아 그 다음 문자를 출력해보자.

영문자 'A'의 다음 문자는 'B'이고, 숫자 '0'의 다음 문자는 '1'이다.

(예시)
...
print(chr(n+1))

(참고)
숫자는 수를 표현하는 문자로서 '0' 은 문자 그 자체를 의미하고, 0은 값을 의미한다.

힌트
아스키문자표에서 'A'는 10진수 65로 저장되고 'B'는 10진수 66으로 저장된다.
따라서, 문자도 값으로 덧셈을 할 수 있다. 어떤 문자의 값에 1을 더하면 그 다음 문자의 값이 된다.

a = ord(input())
print(chr(a+1))

 

6034. 정수 2개(a, b)를 입력받아 a에서 b를 뺀 차를 출력하는 프로그램을 작성해보자.

(예시)
...
c = int(a) - int(b)
print(c)

(참고)
수 - 수는 차(subtraction)가 계산된다.

a, b = input().split()
c = int(a) - int(b)
print(c)

 

6035. 실수 2개(f1, f2)를 입력받아 곱을 출력하는 프로그램을 작성해보자.

(예시)
...
m = float(f1) * float(f2)
print(m)

(참고)
수 * 수는 곱(multiplication)이 계산된다.

a, b = input().split()
c = float(a) * float(b)
print(c)

 

6036. 단어와 반복 횟수를 입력받아 여러 번 출력해보자.

(예시)
w, n = input().split()
print(w*int(n))

(참고)
문자열 * 정수 또는 정수 * 문자열은 그 문자열을 여러 번 반복한 문자열을 만들어 준다.

a, b = input().split()
print(a*int(b))

 

6037. 반복 횟수와 문장을 입력받아 여러 번 출력해보자.

(예시)
n = input()
s = input()
print(int(n)*s)

(참고)
문자열 * 정수 또는 정수 * 문자열은 그 문자열을 여러 번 반복한 문자열을 만들어 준다.

a = input()
b = input()
print(int(a)*b)

 

6038. 정수 2개(a, b)를 입력받아 a를 b번 곱한 거듭제곱을 출력하는 프로그램을 작성해보자.

(예시)
...
c = int(a)**int(b) 
print(c)

(참고)
python 언어에서는 거듭제곱을 계산하는 연산자(**)를 제공한다.
일반적으로 수학 식에서 거듭제곱을 표현하는 사용하는 서컴플렉스/케릿 기호(^)는 프로그래밍언어에서 다른 의미로 쓰인다.

a, b = input().split()
c = int(a)**int(b)
print(c)

 

6039. 실수 2개(f1, f2)를 입력받아 f1을 f2번 거듭제곱한 값을 출력하는 프로그램을 작성해보자.

(참고)
python 언어에서는 거듭제곱(exponentiation)을 계산하는 연산자(**)를 제공한다.
일반적으로 수학 식에서 거듭제곱을 표현하는 사용하는 서컴플렉스/케릿 기호(^)는 프로그래밍언어에서 다른 의미로 쓰인다.
 

a, b = input().split()
c = float(a)**float(b)
print(c)

 

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

(예시)
...
print(a//b)

(참고)
python언어에서는 나눈 몫을 계산하는 연산자(//, floor division)를 제공한다.
a//b 와 같이 작성하면, a를 b로 나눈 몫(quotient)을 계산해준다.
프로그래밍언어에 따라 이렇게 몫을 계산해주는 연산자가 없는 경우도 있다.

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

a, b = input().split()
c = int(a)//int(b)
print(c)

 

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

(예시)
...
print(a%b)

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

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

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

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

(예시)
a = input()
n = int(a, 16)      #입력된 a를 16진수로 인식해 변수 n에 저장
print('%o' % n)  #n에 저장되어있는 값을 8진수(octal) 형태 문자열로 출력

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

a = input()
b = int(a, 16)
print('%o' % b)

 

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

(예시)
n = ord(input())
print(n)

(참고)
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)는 세계 여러 나라의 문자를 공통된 코드 값으로 저장할 때 사용하는 표준 코드이다.

a = ord(input())
print(a)

 

6031. 10진 정수 1개를 입력받아 유니코드 문자로 출력해보자.


(예시)
c = int(input())
print(chr(c))  #c에 저장되어 있는 정수 값을 유니코드 문자(chracter)로 바꿔 출력한다. 


(참고)
입력은 기본적으로 모두 문자열로 입력되는 것이라고 할 수 있다. 
따라서, 입력 값이 문자/문자열/정수/실수인지에 따라서 먼저 정확하게 변환시킨 다음에 사용하거나 계산하는 것이 좋다.

예를 들어 123 이 입력 되었다고 한다면, 이건 정수일까? 문자열일까?
조금 생각해보면, 입력된 것만 보고는 그 값이 어떤 데이터인지 알 수 없다는 것을 쉽게 이해할 수 있다.
따라서, 그 입력 값을 어떻게 해석하고 변환할 지에 대해서 명확하게 작성해 주어야 하는 것이다. 

chr( )는 정수값->문자, ord( )는 문자->정수값 형태로 바꿔주는 서로 반대 방향으로 바꾸어 주는 기능을 한다.

a = chr(int(input()))
print(a)

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

(예시)
a = input()
n = int(a)            #입력된 a를 10진수 값으로 변환해 변수 n에 저장
print('%x'% n)  #n에 저장되어있는 값을 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 ... 와 같다.

a = int(input())
print(hex(a)[2:])

 

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

(예시)
print('%X' % n)  #n에 저장되어있는 값을 16진수 대문자 형태 문자열로 출력

(참고)
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 ... 와 같다.

a = int(input())
b =  hex(a)[2:]
print(b.upper())

6025. 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자.

(예시)
a, b = input().split()
c = int(a) + int(b)
print(c)

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

문자열 + 문자열은 두 문자열을 합친 문자열을 만든다.
숫자로 구성된 문자열이나 실수를 정수(integer) 값으로 바꾸기 위해서는 int( ) 를 사용할 수 있다.
수 + 수의 결과는 합(addition)이 계산된다.

a, b = input().split()
c = int(a) + int(b)
print(c)

 

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

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

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

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

6009. 변수에 문자 1개를 저장한 후 변수에 저장되어 있는 문자를 그대로 출력해보자.

a = input()
print(a)

 

6010. 변수에 정수값을 저장한 후 정수로 변환하여 출력해보자.

a = int(input())
print(a)

 

6011. 변수에 실수값을 저장한 후 변수에 저장되어 있는 값을 그대로 출력해보자.

a = float(input())
print(a)

 

6012. 줄을 바꿔 정수(integer) 2개를 입력받아 줄을 바꿔 출력해보자.

a = input()
b = input()
print(a)
print(b)

 

6013. 줄을 바꿔 문자(character) 2개를 입력받고, 순서를 바꿔 한 줄 씩 출력해보자.

a = input()
b = input()
print(b)
print(a)

 

6014. 실수(real number) 1개를 입력받아 줄을 바꿔 3번 출력해보자.

a = float(input())
print(a)
print(a)
print(a)

 

6015. 공백을 두고 입력된 정수(integer) 2개를 입력받아 줄을 바꿔 출력해보자.

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

Tip. Python의 input()은 한 줄 단위로 입력을 받는다.

input().split()을 사용하면, 공백을 기준으로 입력된 값들을 나누어(split) 자른다.

※ 다른 프로그래밍 언어에서는 이러한 방법을 지원하지 않기 때문에 a=1, b=2를 한 번에 하나씩 따로 실행시켜야 한다.

 

6016. 공백을 두고 문자(character) 2개를 입력받아 순서를 바꿔 출력해보자.

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

Tip. print() 안에서 쉼표(,)를 찍어 순서대로 나열하면, 그 순서대로 공백을 두고 출력된다.

 

6017. 정수(integer), 실수, 문자(character), 문자열(String) 등 1개만 입력받아 한 줄로 3번 출력해보자.

a = input()
print(a, a, a) #공백으로 구분해 한 줄로 출력한다.

Tip. python 언어에서는 문자/정수/실수/문자열 등 특별한 구분이 없이도 원하는 변수에 저장시켜 출력 할 수 있다.
하지만, 저장된 값을 이용해 계산하거나 서로 붙여 연결시키거나 잘라내는 작업을 한다면?
반드시 저장되어있는 값의 종류(문자/정수/실수/문자열 등)를 구분해 주어야 한다.

6018. 24시간 시:분 형식으로 시간이 입력될 때, 그대로 출력하는 연습을 해보자.

a,b = input().split(':')
print(a, b, sep=':')

Tip. input().split(':') 를 사용하면 콜론 ':' 기호를 기준으로 자른다.
print(?, ?, sep=':') 를 사용하면 콜론 ':' 기호를 사이에 두고 값을 출력한다.
sep 는 분류기호(seperator)를 의미한다.

 

6019. "연도.월.일"을 입력받아 "일-월-연도" 순서로 바꿔 출력해보자.

y, m, d = input().split('.')
print(d, m, y, sep='-')

 

6020. 주민번호는 다음과 같이 구성된다. XXXXXX-XXXXXXX

왼쪽 6자리는 생년월일(YYMMDD)이고, 오른쪽 7자리는 성별,출생지역,확인코드로 구성되어있다.
주민번호를 입력받아 형태를 바꿔 출력해보자.

- 주민번호 앞 6자리와 뒷 7자리가 '-'로 구분되어 입력된다. (입력값은 가상의 주민번호이다.)
ex)110011-0000000

- '-'를 제외한 주민번호 13자리를 모두 붙여 출력한다.

(참고)
아무것도 없는 공(empty) 문자는 작은 따옴표(') 2개를 붙여서 '' 로 표현한다.

a, b  = input().split('-')
print(a, b, sep='')

 

6021. 알파벳과 숫자로 이루어진 단어 1개가 입력된다. 입력받은 단어의 각 문자를 한 줄에 한 문자씩 분리해 출력한다.

(예시)
s = input()
print(s[0])
print(s[1])
...

(참고)
s[0] 은 첫 번째 문자를 의미한다.

a = input()
print(a[0])
print(a[1])
print(a[2])
print(a[3])
print(a[4])

 

6022. 6자리의 연월일(YYMMDD)을 입력받아 나누어 출력해보자.

(참고)
s = input()
print(s[0:2])

를 실행하면 0번째 문자부터 1번째 문자까지 잘라 출력한다.
s[a:b] 라고 하면, s라는 단어에서 a번째 문자부터 b-1번째 문자까지 잘라낸 부분을 의미한다.
다른 자르기 방법도 있다.

a = input()
print(a[0:2], a[2:4], a[4:6])

 

6023. 시:분:초 형식으로 시간이 입력될 때 분만 출력해보자.

어떻게 분만 출력해야 할지 주의 깊게 생각해야한다.

h, m, s = input().split(':')
print(m)

 

6024. 알파벳 문자와 숫자로 이루어진 단어 2개를 입력받아
순서대로 붙여 출력하는 프로그램을 작성해보자.

(예시)
w1, w2 = input().split()
s = w1 + w2
print(s)

(참고)
단어는 문자(character)들로 만든다.
문자들로 구성된 문장을 문자열(string)이라고 부른다.
문자열에는 공백문자(' ')가 포함될 수 있는데, 
문자 1개는 길이가 1인 문자열이라고 할 수 있고, 공백문자(' ')가 없는 문자열은 단어(word)라고 할 수 있다.

일반적인 문장들은 공백으로 구분된 단어들로 만들어지기 때문에,
공백문자로 구분된 문장에서 단어를 잘라내기 위해서는 공백문자(' ')를 기준으로 자르면 된다.
키보드로 입력되는 것들은 기본적으로 문자열로 인식되고, 문자열끼리 더하기(+)를 실행하면,
두 문자열을 합쳐 연결한(concatenate) 결과를 만들어 낸다.

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

6001. Hello 출력하기

print("Hello")

 

6002. Hello World 출력하기

print("Hello World")

 

6003. Hello World 줄을 바꿔 출력하기

print("Hello\nWorld")

줄 바꿈 \n

 

6004. 'Hello' 출력하기

print("\'Hello\'")

 

Tip. ' 출력은 역 슬러쉬 - ex) \' 

 

6005. "Hello World" 출력하기

print("\"Hello World\"")

 

6006. "!@#$%^&*()' 출력하기

print("\"!@#$%^&*()\'")

 

 

6007. "C:\Download\'hello'.py" 출력하기

print("\"C:\\Download\\'hello\'.py\"")

Tip. \ 안전하게 출력하려면 \\로 사용하는 것이 좋다.

 

6008. print("Hello\nWorld") 그대로 출력하기

print("print(\"Hello\\nWorld\")")
 

 

1. Code Up Python 기초 100제 풀기

http://codeup.kr/

2. 백준 알고리즘 그리디 / 탐색 유형 / 동적 프로그래밍 각각 50문제씩 풀기

https://www.acmicpc.net/

3. 프로그래머스 기출문제 풀기

https://programmers.co.kr/

 

* 백준 알고리즘 강의 기초 1,2와 중급 1까지는 들어봐도 괜찮을 듯 

===========================================================

[코딩테스트 공부법 유튜브 링크]

1. 동빈나 유튜브 코테 공부법

https://www.youtube.com/watch?v=ukkLCl9yBvE

2. 라매개발자 유튜브 코테 공부법

https://www.youtube.com/watch?v=H6z1_tnyhp0

 

[코딩테스트 공부법 관련 블로그]

https://inner-game.tistory.com/236
https://covenant.tistory.com/220
https://steady-coding.tistory.com/260
https://www.clien.net/service/board/lecture/16146627
https://thinline-it.tistory.com/8

[코딩테스트 공부법 관련 사이트]

https://solved.ac
leetcode.com

* sw expert academy(삼성) : https://swexpertacademy.com/main/main.do

+ Recent posts