C에서 문자는 아스키 코드로 표현되며 숫자와의 연산이 가능하다. 숫자와 연산을 하게 되면 연산 결과 숫자에 해당하는 아스키 문자가 된다. 예를 들어 'a' + 1 은 'b'가 된다.

while 반복문을 이용하여 이 문제를 풀어보려고 한다.

출력값이 a부터 시작하므로 반복문의 초기식은 a로 설정하는 것이 좋을 것 같다.

또한 알파벳은 아스키코드로 a 부터 순서대로 1씩 차이가 나기 때문에 초기값부터 입력값까지 반복문으로 1씩 증가시키면 된다. 

1씩 증가시키다가, 입력한 값과 같아지면 출력하고 반복문을 종료한다.

문자를 입력받거나 출력할 때는 %c 서식문자를 사용한다.

다음은 정답 코드 이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    char c;                // 입력받을 변수
    char i = 'a';        // 초기식
    scanf("%c"&c);
    while(i<=c)            // 초기식이 입력값보다 작거나 같을 때 까지 반복(더 커지면 반복 종료)
    {   
        printf("%c ", i);    // 반복하면서 값 출력
        i++;            // 1씩 
    }
    return 0;
}   
 
cs

 

기존에 파이썬으로 기초 100제를 한번 클리어 했기 때문에 새 계정을 만들어 문제들을 다시 풀었다.

C언어로 기초 100제 문제들을 풀면서 느꼈던 파이썬과의 가장 큰 차이는 자료형이다. 

C언어는 자료형마다 크기와 범위가 달라서 사용할 크기와 범위에 맞는 자료형을 사용해야 한다는 것이였다. 맞는 코드라고 생각했지만 자료형의 범위를 초과하여 원하는 답이 나오지 않았던 경우가 많았다.

 

1097 : [기초-2차원배열] 바둑알 십자 뒤집기(설명)

처음 바둑판 상태를 입력받고, 뒤집기할 횟수를 입력받고, 좌표를 입력받는다.  반복문으로 반복하며 좌표의 가로줄과 세로줄의 흑, 백을 변환한다. 처음 바둑판 상태는 판 리스트를 하나 만들어 두고, 입력값 각 줄을 리스트로 만들어 기존에 만들어둔 리스트에 넣어 2차원 리스트로 만들었다. 십자 뒤집기는 입력받은 좌표의 세로줄과 가로줄 각각 반복문으로 19번 반복하며 흑과 백을 변환하였다.

pan = []
# 바둑판 초기 상태 입력
for i in range(19):
    a = list(map(int, input().split()))
    pan.append(a)

n = int(input())

for i in range(n):
    # 십자 뒤집기 할 좌표
    x, y = map(int, input().split())
    # 리스트 인덱스는 0번부터 시작하므로 1씩 빼줌
    x -= 1
    y -= 1
    # 가로 줄 흑, 백 변환
    for j in range(19):
        if pan[x][j] == 0:
            pan[x][j] = 1
        else:
            pan[x][j] = 0
    # 세로줄 흑, 백 변환
    for j in range(19):
        if pan[j][y] == 0:
            pan[j][y] = 1
        else:
            pan[j][y] = 0

# 최종 값 출력
for i in range(19):
    for j in range(19):
        print(pan[i][j], end = ' ')
    print()

 

1098 : [기초-2차원배열] 설탕 과자 뽑기

입력받은 가로, 세로 크기 만큼 0을 채운 격자판을 2차원 리스트로 만들고, 길이, 방향, 좌표를 입력받아 입력받은 좌표부터 가로 또는 세로 방향으로 입력받은 길이까지 1로 채우는 행위를 입력받은 좌표 수만큼 반복하고, 막대가 채워진 최종 격자판을 출력한다.

h, w = map(int, input().split())
pan = []

# 격자판 초기상태(모든 칸 0)
for i in range(h):
    pan.append([0] * w)

n = int(input())
for i in range(n):
    l, d, x, y = map(int, input().split())
    x -= 1
    y -= 1
    # 막대가 가로로 놓여있을 때
    if d == 0:
    	# 시작 좌표부터 가로 길이만큼 1로 채워짐
        for j in range(l):
            pan[x][y+j] = 1
    # 세로로 놓여있을 때
    else:
        # 시작 좌표부터 세로 길이만큼 1로 채워짐
        for j in range(l):
            pan[x+j][y] = 1

# 격자판 채운 모양 출력
for i in range(h):
    for j in range(w):
        print(pan[i][j], end = ' ')
    print()

 

1099 : [기초-2차원배열] 설탕 과자 뽑기

리스트의 인덱스는 0부터 시작하기 때문에 시작 인덱스를 1,1 로 지정하였고, 입력값은 한 줄씩 리스트로 만들어 입력받아 2차원 리스트로ㅓ 만들었다. 무한 루프 반복문을 만들어 개미가 먹이를 만나거나, 오른쪽 또는 아래로 이동할 수 없을 때 반복문을 탈출하도록 하였고, 벽이 없으면 오른쪽으로 벽이 있으면 아래로 이동하면서 현재 위치에 9를 저장하였다.

miro = []
x, y = 1, 1
for i in range(10):
    a = list(map(int, input().split()))
    miro.append(a)

while True:
    if miro[x][y] == 2:
        miro[x][y] = 9
        break
    miro[x][y] = 9
    if miro[x][y+1] == 0:
        y += 1
    elif miro[x][y+1] == 1:
        if miro[x+1][y] == 1:
            break
        elif miro[x+1][y] == 2:
            miro[x+1][y] = 9
            break
        else:
            x += 1
    else:
        miro[x][y+1] = 9
        break



for i in range(10):
    for j in range(10):
        print(miro[i][j], end = ' ')
    print()

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

파이썬에서는 16진수는 0x가 붙기 때문에 입력값에 0x를 붙여줘야 한다. 입력값에 0x를 붙이고 int(변수, 현재진법)의 형식으로 10진수로 변환한 다음 다시 oct()로 8진수로 변환한다. 변환한 값을 다시 문자열로 변환한 후 인덱스 슬라이싱을 이용하여 0o를 빼고 출력한다.

n = input()
n = '0x' + n
n = int(n, 16)
n = oct(n)
n = str(n)
print(n[2:])

 

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

문자를 아스키 코드표의 10진수로 변환하려면 파이썬에서는 ord()함수를 이용한다. 입력받은 값을 ord로 10진수로 변환한 후 출력한다.

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

 

1037 : [기초-출력변환] 정수 입력받아 아스키 문자로 출력하기(설명)

10진수를 아스키 문자로 변환하려면 파이썬에서는 chr()함수를 사용한다. 입력 받은 값을 chr로 변환한 후 출력한다.

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

 

1038 : [기초-산술연산] 정수 2개 입력받아 합 출력하기1(설명)

map으로 두 입력값을 정수로 입력받고, 입력받은 값들을 더하여 출력한다.

n1, n2 = map(int, input().split())
print(n1+n2)

 

1039 : [기초-산술연산] 정수 2개 입력받아 합 출력하기2(설명)

파이썬에서는 정수 범위의 제한이 없기 때문에 위 코드를 동일하게 사용하면 된다.

n1, n2 = map(int, input().split())
print(n1+n2)

 

1040 : [기초-산술연산] 정수 1개 입력받아 부호 바꿔 출력하기(설명)

정수를 저장한 변수에 -(마이너스)기호를 붙이면 부호가 바뀐다.

n = int(input())
print(-n)

 

1041 : [기초-산술연산] 문자 1개 입력받아 다음 문자 출력하기(설명)

아스키 문자는 알파벳 순서대로 배열되어 있어 아스키 코드에 1을 더하면 다음 알파벳이 나온다. 입력받은 문자를 아스키 코드로 변환한 후 1을 더한 후에 다시 문자로 변환하여 출력한다.

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

 

1042 : [기초-산술연산] 정수 2개 입력받아 나눈 몫 출력하기(설명)

파이썬에서는 //연산자로 몫연산을 진행한다. 나머지는 버리고 몫만 반환한다.

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

 

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

나머지를 구하는 연산자는 %이다. 입력값을 정수로 입력받아 나머지 연산하여 출력한다.

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

 

1044 : [기초-산술연산] 정수 1개 입력받아 1 더해 출력하기(설명)

입력받은 값에서 1 더한 값을 출력하면된다.

n = int(input())
print(n+1)

 

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

두 입력값을 정수로 입력받아 각 줄에 각각 연산한 값을 출력한다. 나눈 값은 실수로 출력되기 때문에 format으로 소숫점 둘째자리 까지 출력할 수 있도록 고정해준다.

n1, n2 = map(int, input().split())
print(n1+n2)
print(n1-n2)
print(n1*n2)
print(n1//n2)
print(n1%n2)
print(format(n1/n2,".2f"))

 

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

정수 3개를 입력받고 첫번째 줄에는 합을 출력하고, 두번째 줄에는 평균을 출력한다. 평균은 합에서 3을 나누면 되고, format으로 소숫점 첫째자리 까지 고정하여 출력한다.

n1, n2, n3 = map(int, input().split())
hap = n1 + n2 + n3
print(hap)
print(format(hap/3, ".1f"))

 

1047 : [기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기(설명)

*2 로 출력해도 되지만, 비트 시프트를 이용할 수 있다. 2진수 형태의 값을 <<(왼쪽)으로 밀면 값이 두 배 증가하고, >>(오른쪽)으로 밀면 값이 반으로 줄어든다. 입력받은 값을 비트시프트를 이용하여 1칸 밀면 2배 곱한 값을 출력할 수 있다.

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

 

1048 : [기초-비트시프트연산] 한 번에 2의 거듭제곱 배로 출력하기(설명)

왼쪽(<<)으로 밀 때 마다 값이 두번씩 증가하기 때문에 a를 b칸만큼 밀면 된다.

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

 

1049 : [기초-비교연산] 두 정수 입력받아 비교하기1(설명)

비교 연산자는 왼쪽이 오른쪽보다 크면 > , 작으면 <, 크거나 같으면 >=, 작거나 같으면 <=, 같으면 ==, 다르면 != 을 사용한다. if 조건문을 사용하여 a > b일 경우 1을 출력하고 아니면 0을 출력하면 된다.

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

if a > b:
    print(1)
else:
    print(0)

 

1050 : [기초-비교연산] 두 정수 입력받아 비교하기2(설명)

두 정수가 같으면 == 연산자를 이용하여 비교했을 때 참이 나오고, 다르면 != 연산자를 이용하여 비교했을 때 참이 나온다. 이를 활용하여 if 조건문으로 해결할 수 있다.

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

if a == b:
    print(1)
else:
    print(0)

 

1051 : [기초-비교연산] 두 정수 입력받아 비교하기3(설명)

크거나 같은지 확인하는 연산자는 >= 이다. if 조건문으로 크거나 같은지 확인하고, 아니라면 else에서 처리하면 된다.

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

if b >= a:
    print(1)
else:
    print(0)

 

1052 : [기초-비교연산] 두 정수 입력받아 비교하기4(설명)

두 정수가 다른지 확인하는 연산자는 != 이다. if 조건문으로 다른지 확인하고 아니면 else에서 처리하면 된다.

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

if b != a:
    print(1)
else:
    print(0)


1053 : [기초-논리연산] 참 거짓 바꾸기 (설명)

입력값은 둘 중 하나이기 때문에 입력값을 받아서 1이 입력되면 0을 출력하고, 아니면 1을 출력하도록 하면 된다.

a = int(input())

if a == 0:
    print(1)
else:
    print(0)

 

1054 : [기초-논리연산] 둘다 참일 경우만 참 출력하기 (설명)

if 조건문에 조건식을 넣을 때 and 연산자를 사용하면 조건식을 여러 개 넣을 수 있고, and연산자는 and의 왼쪽 식과 오른쪽 식이 모두 참 이여야 참을 반환한다. if 1 and 1: 과 같이 둘 다 참이여야 조건식을 수행한다. 따라서 둘 다 1을 입력 받을 경우 1을 출력하도록 하면 된다.

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

if a == 1 and b == 1:
    print(1)
else:
    print(0)

 

1055 : [기초-논리연산] 하나라도 참이면 참 출력하기 (설명)

or 연산자는 둘 중 하나만 참이면 참을 출력한다. 위 코드에서 and 부분만 or로 바꾸면 된다.

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

if a == 1 or b == 1:
    print(1)
else:
    print(0)

 

1056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기 (설명)

입력 될 수 있는 값은 0 과 1 밖에 없으므로 둘이 다르면 1을 출력하고, 같으면 0을 출력한다.

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

if a != b:
    print(1)
else:
    print(0)

 

1057 : [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기 (설명)

두 입력값이 서로 같으면 1을 출력하고, 아니면 0을 출력한다.

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

if a == b:
    print(1)
else:
    print(0)

 

1058 : [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기 (설명)

and 연산을 이용하여 입력받은 두 값이 모두 0일때 1을 출력한다.

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

if a == 0 and b == 0:
    print(1)
else:
    print(0)

 

1059 : [기초-비트단위논리연산] 비트단위로 NOT 하여 출력하기 (설명)

10진수를 2진수로 바꾸면 0과 1의 배열로 표현한다. 이 배열에서 0은 1로, 1은 0으로 바꾸는것을 비트 단위로 NOT한다고 한다. 파이썬에서도 ~연산자를 통해 비트단위 NOT연산을 할 수 있다.

n = int(input())
print(~n)

 

1060 : [기초-비트단위논리연산] 비트단위로 AND 하여 출력하기 (설명)

비트 단위로 AND연산 하는 것은 두 수를 2진수 배열로 바꿨을때 각 자리가 둘다 1인 부분만 1로 하고 나머지는 0으로 만드는 것이다. &연산자를 통해 비트단위 AND연산을 할 수 있다.

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

 

1061 : [기초-비트단위논리연산] 비트단위로 OR 하여 출력하기 (설명)

비트 단위로 or 연산 하는 것은 두 수를 2진 배열로 바꿨을 때 각 자리중 하나만 1이면 1로하고, 둘다 0이면 0으로 만드는 것이다. | 연산자를 통해 비트단위 OR연산을 할 수 있다.

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

 

1062 : [기초-비트단위논리연산] 비트단위로 XOR 하여 출력하기 (설명)

비트 단위로 XOR연산 하는 것은 두 수를 2진 배열로 바꿨을 때 각 자리의 수가 서로 다르면 1로 하고, 같으면 0으로 하는 것이다. ^연산자를 이용하여 비트단위 XOR연산을 할 수 있다.

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

 

1063 : [기초-삼항연산] 두 정수 입력받아 큰 수 출력하기 (설명)

파이썬에서는 삼항연산을 다음과 같이 수행한다.

참일때 반환값 if 조건 else 거짓일때 반환값

따라서 정답은 다음과 같다.

a,b = map(int, input().split())
print(a if a > b else b)

 

1064 : [기초-삼항연산] 정수 3개 입력받아 가장 작은 수 출력하기 (설명)

a와 b중 작은 값을 삼항 연산으로 구하는 식을 괄호에 넣어서 괄호를 c와 비교하는 방식으로 삼항 연산을 구성할 수 있다.

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

 

1065 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기 (설명)

if 조건문을 활용해서 입력받은 각 수가 짝수일 때만 출력하도록 한다. 짝수는 2로 나눴을 때 나머지가 0이면 짝수이다.

a,b,c = map(int, input().split())
if a % 2 == 0:
    print(a)
if b % 2 == 0:
    print(b)
if c % 2 == 0:
    print(c)

 

1066 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝/홀 출력하기 (설명)

각 변수마다 if~else문으로 짝이면 even을 출력하고, 아니면 odd를 출력한다.

a,b,c = map(int, input().split())
if a % 2 == 0:
    print('even')
else:
    print('odd')
if b % 2 == 0:
    print('even')
else:
    print('odd')
if c % 2 == 0:
    print('even')
else:
    print('odd')

 

1067 : [기초-조건/선택실행구조] 정수 1개 입력받아 분석하기 (설명)

if 조건문으로 먼저 입력받은 정수가 양수인지 음수인지 확인하여 출력하고, 그 안에서 다시 if문으로 짝수인지 홀수인지 확인하여 출력한다.

a = int(input())
if a > 0 :
    print('plus')
    if a % 2 == 0:
        print('even')
    else:
        print('odd')
else:
    print('minus')
    if a % 2 == 0:
        print('even')
    else:
        print('odd')

 

1068 : [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기(설명)

if 문으로 입력받은 점수를 비교하여 평가를 출력해야 한다. 문제와 같이 검사해야 할 조건이 많을 때는 if 다음에 elif를 사용하면 if 조건이 거짓일 경우 순차적으로 아래로 내려오며 elif의 조건식을 검사한다.

score = int(input())
if score < 40:
    print('D')
elif score < 70:
    print('C')
elif score < 90:
    print('B')
else:
    print('A')

 

1069 : [기초-조건/선택실행구조] 평가 입력받아 다르게 출력하기(설명)

이 문제도 위와 같이 if~elif~else 문을 사용하여 출력할 수 있다. 입력받은 평가를 비교하면서 그에 맞는 값을 출력하고 나머지 문자들은 else에서 처리한다.

grade = input()

if grade == 'A':
    print('best!!!')
elif grade == 'B':
    print('good!!')
elif grade == 'C':
    print('run!')
elif grade == 'D':
    print('slowly~')
else:
    print('what?')

 

1070 : [기초-조건/선택실행구조] 월 입력받아 계절 출력하기(설명)

월이 입력되면 if 조건식에 or 연산을 이용하여 해당하는 계절을 출력할 수 있다.

month = int(input())

if month == 12 or month == 1 or month == 2:
    print('winter')
elif month == 3 or month == 4 or month == 5:
    print('spring')
elif month == 6 or month == 7 or month == 8:
    print('summer')
else:
    print('fall')

 

1071 : [기초-반복실행구조] 0입력될 때까지 무한 출력하기1(설명)

파이썬에서는 goto문이 없다. 입력 예시를 보니 정수가 한번에 입력되기 때문에 한 변수 x에 입력 받아서 for 반복문으로 반복하며 x의 각 요소들이 0인지 비교하고, 0이 아니면 그 요소를 출력하고, 0이면 반복문을 종료한다.

x = map(int, input().split())

for i in x:
    if i == 0:
        break
    else:
        print(i)

 

1072 : [기초-반복실행구조] 정수 입력받아 계속 출력하기(설명)

입력 받을 정수의 개수를 입력받고, 정수들을 하나의 변수에 입력받는다. 정수들을 입력받은 변수를 for 반복문으로 반복하며 각 요소를 출력한다.

n = int(input())
num = map(int, input().split())
for i in num:
    print(i)

 

1073 : [기초-반복실행구조] 0입력될 때까지 무한 출력하기2(설명)

1071번 문제와 동일하다. 1071번 문제는 goto문을 사용하는것이 문제의 의도인듯 했으나 파이썬에서는 goto는 사용할 수 없어 for 문으로 풀었다. 이 문제도 1071번과 동일한 코드를 사용하겠다.

x = map(int, input().split())

for i in x:
    if i == 0:
        break
    else:
        print(i)

 

1074 : [기초-반복실행구조] 정수 1 개 입력받아 카운트다운 출력하기1(설명)

while문을 이용하여 해결할 수 있다. while 조건식에 입력받은 정수가 0이 될 때 까지 반복 하도록 하고, 입력받은 정수를 출력하고 거기서 1을 빼는 것을 반복한다.

n = int(input())
while n != 0:
    print(n)
    n -= 1

 

1075 : [기초-반복실행구조] 정수 1 개 입력받아 카운트다운 출력하기2(설명)

이번에는 for 반복문을 이용하여 range(입력값, 끝날값, 증가시킬 크기)와 같은 형식으로 반복 실행할 수 있는데 1씩 줄여야 하므로 증가시킬 크기에 -1을 넣으면 된다. 그리고 끝날 값은 실제 출력값보다 1 작게 넣어줘야 한다. 첫번째 출력값도 입력값보다 1 작으므로 입력값 - 1 을 넣어줘야 한다.

n = int(input())

for i in range(n-1, -1, -1):
    print(i)

 

1076 : [기초-반복실행구조] 문자 1 개 입력받아 알파벳 출력하기(설명)

영소문자는 97 부터 시작한다. 입력한 값을 아스키 코드 10진값으로 바꾸고 97 부터 입력값을 바꾼 아스키 코드 값까지 반복하여 chr()로 문자로 출력하면 된다. 공백을 두고 1열로 출력해야하므로  print에 sep = ' '을 설정해줘야 한다.

a = input()
a = ord(a)
for i in range(97, a+1):
    print(chr(i), sep = ' ')

 

1077 : [기초-반복실행구조] 정수 1 개 입력받아 그 수까지 출력하기(설명)

for문으로 0부터 입력받은 수까지 출력할 수 있다. range로 범위 설정을 할때는 출력하려고 하는 수보다 1 크게 설정해야 한다.

n = int(input())
for i in range(0, n+1):
    print(i)

1001 : [기초-출력] 출력하기01(설명)

파이썬을 사용하기 때문에 print()함수를 사용하였다.

print('hello')

 

 1002 : [기초-출력] 출력하기02(설명)

print()함수로 주어진 문장을 그대로 출력하면 된다.

print('Hello World')

 

 1003 : [기초-출력] 출력하기03(설명)

줄을 바꿀 때는 개행문자 \n을 사용하면 된다.

print('Hello\nWorld')

 

1004 : [기초-출력] 출력하기04(설명)

작은 따옴표를 출력하려면 문자열을 큰 따옴표로 감싸면 된다.

print("'Hello'")

 

1005 : [기초-출력] 출력하기05(설명)

큰 따옴표를 출력하려면 문자열을 작은따옴표로 감싸면 된다.

print('"Hello World"')

 

1006 : [기초-출력] 출력하기06(설명)

큰 따옴표도 출력해야 하므로 작은따옴표로 문자열을 감싸서 출력한다.

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

 

1007 : [기초-출력] 출력하기07(설명)

print함수에서 역슬래쉬 하나를 출력하려면 두개를 써야 한다.

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

 

1008 : [기초-출력] 출력하기08(설명)

문제에서 제시한 특수문자는 유니코드를 이용하여 출력할 수 있다고 한다. 

문제에서 준 활용할 수 있는 유니코드 표는 다음과 같다.

유니코드를 출력하려면 \u코드번호 와 같은 형식으로 출력할 수 있다. 위 코드표에서 유니코드를 찾아 코드를 작성하면 다음과 같다.

print('\u250C\u252C\u2510')
print('\u251C\u253C\u2524')
print('\u2514\u2534\u2518')

 

1010 : [기초-입출력] 정수 1개 입력받아 그대로 출력하기(설명)

파이썬에선 입력받은 값은 문자형이기 때문에 정수형으로 형변환을 해준 후 출력해야 한다.

n = int(input())
print(n)

 

1011 : [기초-입출력] 문자 1개 입력받아 그대로 출력하기(설명)

입력받은 값은 정수형이기 때문에 그대로 출력하면 된다.

c = input()
print(c)

 

1012 : [기초-입출력] 실수 1개 입력받아 그대로 출력하기(설명)

입력받은 값을 실수형으로 형변환 하고 출력하면 된다. 답을 제출하니 오답이라 나와서 테스트 케이스들을 확인하니 소숫점이 6자리로 고정인것 같다. 실수를 출력할때 format(실수, ".자리수f")와 같은 형식으로 출력하면 원하는 소숫점 자리수 만큼 출력할 수 있다. 정답은 다음 코드와 같다.

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

 

1013 : [기초-입출력] 정수 2개 입력받아 그대로 출력하기(설명)

map을 활용하여 한번에 두 개의 정수를 입력받아 정수로 형변환 할 수 있다. split()은 공백을 기준으로 입력값을 구분한다.

n1, n2 = map(int, input().split())
print(n1,n2)

 

1014 : [기초-입출력] 문자 2개 입력받아 순서 바꿔 출력하기(설명)

문자 두개를 입력 받고, 출력할 때 변수의 순서를 지정하면 된다.

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

 

1015 : [기초-입출력] 실수를 입력받아 둘째 자리까지 출력하기(설명)

format(실수, ".자리수f")와 같은 형식으로 출력하면 지정한 자리수 만큼 반올림되어 출력된다.

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

 

1017 : [기초-입출력] 정수 1개 입력받아 3번 출력하기(설명)

입력받은 정수를 저장한 변수를 3번 출력하면 된다.

 

1018 : [기초-입출력] 시간 입력받아 그대로 출력하기(설명)

split()괄호 안에 ':'을 넣으면 :을 기준으로 구분된다. print()에 .format()을 사용하면 문자열의 중괄호 안에 format의 인자로 넣은 변수가 순서대로 들어간다.

h, m = map(int, input().split(':'))
print('{}:{}'.format(h,m))

 

1019 : [기초-입출력] 연월일 입력받아 그대로 출력하기(설명)

split('.')로 입력값을 .을 기준으로 구분한다. 한 자리 수면 십의 자리에 0을 채워야 하는데, 중괄호에 format으로 값을 대입할 때 {:02d}와 같은 방식으로 자리수를 맞추면 된다. 두자리수면 그대로 출력되고, 한 자리 수면 2자리로 맞춰준다. 처음에 실패해서 테스트 케이스를 살펴보니 년도 4자리로 맞춰줘야 하는 것 같다.

y, m, d = map(int, input().split('.'))
print('{:04d}.{:02d}.{:02d}'.format(y,m,d))

 

1020 : [기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기(설명)

 

입력값을 '-'을 기준으로 구분하여 각 변수에 저장하고, 출력할 때 붙여서 출력하면 된다. print함수의 sep는 두 개 이상의 변수를 출력할 때 구분 문자를 지정하는데, 기본값은 공백이였지만, sep=''으로 공백을 없애면 된다.

j1, j2 = input().split('-')
print(j1,j2,sep='')

 

1021 : [기초-입출력] 단어 1개 입력받아 그대로 출력하기(설명)

변수 하나에 입력값을 저장하고 print로 저장한 변수를 출력하면 된다.

s = input()
print(s)

 

1022 : [기초-입출력] 문장 1개 입력받아 그대로 출력하기(설명)

위 문제와 같이 변수 하나에 입력받아 그대로 출력하면 된다.

s = input()
print(s)

 

1023 : [기초-입출력] 실수 1개 입력받아 부분별로 출력하기(설명)

입력값을 '.'으로 구분하여 각 변수에 저장하여 print로 각 줄에 출력하면 된다.

n, f = input().split('.')
print(n)
print(f)

 

1024 : [기초-입출력] 단어 1개 입력받아 나누어 출력하기(설명)

입력받은 단어를 변수에 저장하고, for 반복문을 이용하여 한줄에 한 문자씩 출력할 수 있다. 테스트 케이스를 확인해보니 출력한 문자를 작은 따옴표로 감싸고 있었기에 format을 이용하여 작은따옴표 안에 넣어줬다

word = input()
for i in word:
    print("'{}'".format(i))

위와 같은 방식으로 반복문을 사용하면 word변수에 들어있는 각 문자가 반복을 하며 순서대로 i에 들어간다.

 

1025 : [기초-입출력] 정수 1개 입력받아 나누어 출력하기(설명)

숫자를 입력받고, 반복문으로 한자리씩 숫자의 자리에 맞게 곱하여 [] 안에 넣어 출력하였다. cnt는 자리수에 맞게 곱할 숫자인데, 입력받은 숫자가 5자리 이기 때문에 10000에서 시작한다. 반복 횟수를 거듭할수록 10씩 나눠주고 정수를 나누면 실수형이 되기 때문에 출력할때 다시 한번 정수형으로 형변환을 해줬다.

n = input()
cnt = 10000
for i in n:
    pr_num = int(i) * cnt
    print('[{}]'.format(int(pr_num)))
    cnt /= 10

 

1026 : [기초-입출력] 시분초 입력받아 분만 출력하기(설명)

split()으로 시, 분, 초를 구분하여 입력받고, 분을 저장한 변수만 출력한다.

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

 

1027 : [기초-입출력] 년월일 입력받아 형식 바꿔 출력하기(설명)

입력값은 split()으로 구분 받아서 각 변수에 저장한다. 저장한 변수를 .format()으로 순서를 바꾸고 {:02d}와 같은 형식으로 자리수를 바꾸어 출력하면 된다.

y, m, d = map(int, input().split('.'))
print('{:02d}-{:02d}-{:04d}'.format(d,m,y))

 

1028 : [기초-데이터형] 정수 1개 입력받아 그대로 출력하기2(설명)

파이썬에서는 int자료형의 범위가 더 넓기 때문에 입력 받은 값을 int로 저장하여 출력하면 된다.

n = int(input())
print(n)

 

1029 : [기초-데이터형] 실수 1개 입력받아 그대로 출력하기2(설명)

float로 실수를 입력받아 format(실수, ".11f")로 11자리까지 출력하면 된다.

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

 

1030 : [기초-데이터형] 정수 1개 입력받아 그대로 출력하기3(설명)

파이썬에서는 int범위를 벗어나도 type를 확인해보면 int로 나오기 때문에 입력값을 int로 저장하여 그대로 출력하면 된다.

n = int(input())
print(n)

 

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

파이썬에서는 8진수를 출력하면 0o가 앞에 붙는데, 출력 예시를 보면 0o가 없다. 정수로 입력받은 입력값을 oct()로 8진수로 형변환 한 후 str로 다시 형변환을 하여 출력할 때 [2:]인덱스를 활용하여 0o를 제외한 2번 인덱스 부터 출력하였다.

n = int(input())
n = str(oct(n))
print(n[2:])

 

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

16진수를 출력할 때도 0x가 앞에 붙는데, 출력 예시를 보면 0x가 없기 때문에 hex()로 16진수로 형변환 한 후, str로 형변환 하여 2번 인덱스부터 출력하면 된다.

n = int(input())
n = str(hex(n))
print(n[2:])

 

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

대문자로 출력해야 하므로 위와 같이 출력하고, 출력 자료형이 str인 상태이기 때문에 .upper()를 사용하여 대문자로 출력할 수 있다.

n = int(input())
n = str(hex(n))
print(n[2:].upper())

 

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

파이썬에서는 0o가 앞에 붙어있어야 8진수로 인식하기 때문에 인식 받은 값에 0o를 붙여줘야 한다. int로 형변환 할때 int(변수, 현재진수)의 형식으로 형변환을 하면 변수의 값을 지정한 진법에서 int형으로 형변환 된다. 형변환 한 값을 출력하면 된다.

n = input()
n = '0o' + n
n = int(n, 8)
print(n)

 

+ Recent posts