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


다섯 자리의 정수 1개를 입력받아 각 자리별로 나누어 출력한다.

참고
scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
를 사용하면 1개의 숫자로 각각 구분되어 저장된다.

예시
읽어들인 값을 적당히 바꿔 출력하기 위해서

printf("[%d]", a*10000);

과 같은 방법도 가능하다.

 

정답

a=input()
list(a)
b=[10000,1000,100,10,1]
for i in range(len(a)):
    c=int(a[i]) * b[i]
    print('[%d]' % c)

 

모범 소스

n=input()

print("["+str(int(n[0])*10000)+"]")
print("["+str(int(n[1])*1000)+"]")
print("["+str(int(n[2])*100)+"]")
print("["+str(int(n[3])*10)+"]")
print("["+str(int(n[4]))+"]")

 

 

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


입력되는 시:분:초 에서 분만 출력해보자.

참고
int h, m, s;
scanf("%d:%d:%d", &h, &m, &s);

를 실행하면 콜론을 사이에 둔 형식으로 입력되어, h, m, s에 각각 정수값만 저장된다.

 

정답
a,b,c=input().split(':')
print(int(b))

 

 

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


년월일을 출력하는 방법은 나라마다, 형식마다 조금씩 다르다.

년월일(yyyy.mm.dd)를 입력받아,

일월년(dd-mm-yyyy)로 출력해보자.

(단, 한 자리 일/월은 0을 붙여 두자리로, 년도도 0을 붙여 네자리로 출력한다.)


참고
출력하는 자리수를 지정하기 위해 %4d와 같은 형식을 사용할 수 있는데,
빈칸을 0으로 출력하기 위해서는 %04d와 같은 형식을 사용하면 된다.

예시
printf("%02d-%02d-%04d", d, m, y);

 

정답

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

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

print("%02d-%02d-%04d" % (c,b,a))

 

모범 소스

y,m,d=input().split('.')

print('%02d' % int(d), end='-')
print('%02d' % int(m), end='-')
print('%04d' % int(y))

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

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


1개의 단어를 입력받아 그대로 출력해보자. 

 

정답
a=input()
print(a)

 

 

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


공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자.

예시
char data[2001];
fgets(data, 2000, stdin);
printf("%s", data);

위와 같이 실행하면 공백이 포함된 문장을 키보드(stdin)로 입력받아
최대 2000자까지 data[ ] 공간에 저장하고 출력할 수 있다.

%s 는 문자열(string, 실로 연결된 문자들. 문장)로 출력하라는 의미이다.

참고
fgets( ) 를 사용하면 공백문자가 포함되어잇는 문장을 입력받아 저장할 수 있다.
만약, 아래처럼
scanf("%s", ... ) 를 이용해 문장을 입력받으면, 첫 번째 단어까지만 저장된다.

char data[51] = ""; //최대 50문자까지 저장 가능
scanf("%s", data);

 

정답

a=input()
print(a)

 

 

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


실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다.

** 여러 가지 방법들로 해결할 수 있다.

만약 실수 부분이 0으로 시작하지 않는다면(예를 들어 1.000009)
scanf("%d.%d", &a, &b)도 하나의 방법이 될 수 있다.

 

정답

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

 

모범 소스

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

print(int(a))
print(int(b))

 

 

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


단어를 1개 입력받는다.

입력받은 단어(영어)의 각 문자를

한줄에 한 문자씩 분리해 출력한다.


참고
C언어에서는 문장을 저장하기 위해 특별한 방법을 사용하지 않고,
배열이라는 연속된 공간에 문자들을 연속으로 한 개씩 저장하는 방법을 사용한다.
단, 문자열(문자가 연속적으로 연결된 줄이라는 의미. 즉 문장)의 마지막임을 나타내기 위해
문자열의 마지막에 널(NULL) 문자라는 특별한 의미를 가지는 문자를 삽입해 문장임을 나타낸다.

널(NULL)은 영어 단어 자체의 의미로는, 아무런 가치가 없는 또는 아무것도 없는, 사용되지 않은 등의 의미를 가지는데,

문자로는 '\0', 아스키문자의 정수값은 0을 의미하며 NULL 로도 사용할 수 있다.

단어나 문장을 scanf("%s", ...); 로 입력받게 되면, 그 마지막에 널문자가 자동으로 입력되는 것이다.

그러므로, 본 문제는 그렇게 저장되어있는 영문자들을 한 개씩 순차적으로 검사해서,

문장의 마지막을 나타내는 널문자가 나올 때까지 모양을 만들어 출력하면 되는 것이다.

나중에 조건실행문, 반복문, 배열에 대해서 배우면 명확히 이해할 수 있게 된다.

printf("%s", ...); 는 결국, 저장되어있는 문자의 마지막까지, 즉 널문자가 나올 때까지 형식에 맞추어 출력해 주라는 의미를 가진다.


예시
char d[30]; //최대 30문자를 저장할 수 있는 저장 공간 준비. 마지막에 널문자 고려해야함
scanf("%s", d); //그 공간에 키보드로 입력된 내용을 저장. 단 공백이 있으면 거기까지만 입력됨.
for(i=0; d[i]!='\0'; i++) //저장된 내용을 하나하나씩 검사해서 널문자가 아닐 동안 아래 실행
{
printf("\'%c\'", d[i]);
}

 

정답

a=input()
list(a)
for i in range(len(a)):
    print("'%s'"% a[i])

 

모범 소스

a=input()

for c in a:
    print("'"+c+"'")

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

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


int형 정수 1개를 입력받아 공백을 사이에 두고 3번 출력해보자.

참고
printf("%d %d %d", a, a, a);
와 같은 방법으로 출력할 수 있다.

 

정답
a=input()
print(a,a,a)

 

모범 소스

n=input()
n=int(n)
print(n, n, n,);

 

 

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


어떤 형식에 맞추어 시간이 입력될 때, 그대로 출력하는 연습을 해보자.

참고
scanf( ) 함수는 지정한 형식(format)에 따라 입력받는 함수이다.
따라서, 입력받고자 하는 형식으로 표현해주면 된다.

예시
scanf("%d:%d", &h, &m); //콜론(:) 기호를 기준으로 두 수가 각 변수에 저장된다.

 

정답

a=str(input())
print(a)

 

모범 소스

h,m=input().split(':');
print(int(h), int(m), sep=':');

 

 

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


년, 월, 일을 입력받아 지정된 형식으로 출력하는 연습을 해보자.

 

정답

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

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

print("%04d.%02d.%02d" %(a,b,c))

 

모범 소스

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

print('%04d' % int(a), end='.')
print('%02d' % int(b), end='.')
print('%02d' % int(c))

 

 

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


주민번호는 다음과 같이 구성된다.

XXXXXX-XXXXXXX

앞의 6자리는 생년월일(yymmdd)이고 뒤 7자리는 성별, 지역, 오류검출코드이다.
주민번호를 입력받아 형태를 바꿔 출력해보자.

 

정답

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

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

print('%06d%07d' % (a,b))

 

모범 소스

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

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

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


정수(int) 2개를 입력받아 그대로 출력해보자.

참고

int a, b;
scanf("%d%d", &a, &b); //엔터/공백으로 입력 데이터가 구분되어 입력
printf("%d %d", a, b);

와 같은 방법으로 가능하다.

 

정답

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

 

모범 소스

a,b = input().split()
n=int(a)
m=int(b)
print(a, b)

 

 

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


2개의 문자(ASCII CODE)를 입력받아서 순서를 바꿔 출력해보자.

참고
char x, y;
scanf("%c %c", &x, &y);
printf("%c %c", y, x); //출력되는 순서를 작성
와 같은 방법으로 해결할 수 있다.

 

정답

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

 

 

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


실수(float) 1개를 입력받아 저장한 후,
저장되어 있는 값을 소수점 셋 째 자리에서 반올림하여
소수점 이하 둘 째 자리까지 출력하시오.

참고
%.3f 와 같은 형식으로 지정하면,
소수점 이하 넷 째 자리에서 반올림하여 소수점 이하 셋 째 자리까지 출력하라는 의미이다.

 

정답

a=float(input())
print('%.2f' % a)

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

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


정수형(int)으로 변수를 선언하고, 변수에 정수값을 저장한 후
변수에 저장되어 있는 값을 그대로 출력해보자.

예시
int main()
{
int n;
scanf("%d", &n);
printf("%d", n);

return 0;
}

와 같은 형태로 가능하다.

 

정답

a=input()
print(a)

 

모범 소스

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

   

 

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


문자형(char)으로 변수를 하나 선언하고, 변수에 문자를 저장한 후
변수에 저장되어 있는 문자를 그대로 출력해보자.

참고
char x;
scanf("%c", &x);
printf("%c", x);

와 같은 방법으로 가능하다.

 

정답

a=input()
print(a)

 

 

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


실수형(float)로 변수를 선언하고 그 변수에 실수값을 저장한 후
저장되어 있는 실수값을 출력해보자.

참고
float x;
scanf("%f", &x);
printf("%f", x);
와 같은 방법으로 가능하다.

 

정답

a=float(input())
print("%f" % a)

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

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

 

이번에는 큰따옴표(double quotation mark)가 포함된 출력문을 연습해보자.

다음 문장을 출력하시오.

"Hello World"
(단, 큰따옴표도 함께 출력한다.)

참고
printf( ) 함수로 큰 따옴표 문자 " 를 출력하기 위해서는 \" 로 출력해야 한다.

예시
printf("\"");

정답

print('\"Hello World\"')

 

 

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


이번에는 특수문자 출력에 도전하자!!

다음 문장을 출력하시오.

"!@#$%^&*()"
(단, 큰따옴표도 함께 출력한다.)

참고
% 기호가 앞에 붙는 문자를 형식 지정자(format specifier)라고 하며,
그 위치에서 지정한 형식으로 값을 출력해 준다.
따라서, 퍼센트 문자 %를 출력하기 위해서는 %%로 출력해 주어야 한다.

예시
printf("%%");

정답

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

 

 

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


윈도우 운영체제의 파일 경로를 출력하는 연습을 해보자.

파일 경로에는 특수문자들이 포함된다.

다음 경로를 출력하시오.

"C:\Download\hello.cpp"
(단, 큰따옴표도 함께 출력한다.)

참고
printf( ) 함수로 백슬래시 문자 \ 를 출력하기 위해서는 \\ 로 출력해야 한다.

예시
printf("\\");

정답

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

 

 

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


이번에는 특수문자를 출력하는 연습을 해보자.

키보드로 입력할 수 없는 다음 모양을 출력해보자.
(** 참고 : 운영체제의 문자 시스템에 따라 아래와 같은 모양이 출력되지 않을 수 있다.)

┌┬┐
├┼┤
└┴┘

참고
다음과 같은 유니코드로 특수문자를 표현한다고 하자.
(운영체제 또는 컴파일러에 따라 사용되는 문자의 코드표가 다르다.)

 

윈도우에서는 "ㅂ+한자" 키를 누르면 선문자를 입력할 수 있다.
선문자를 이용하면 일반적인 텍스트 모드화면(메모장 등)에서도 표를 그릴 수 있다.

유니코드 특수문자를 출력하는 방법,
...
printf("\u250C\u252C\u2510\n");
...

┌┬┐
├┼┤
└┴┘

을 그려 출력하면 표처럼 선이 붙어 출력된다.

CLI 명령어 입출력 화면에서 표나 그림을 그리기 위해 사용되던 방법과 비슷하다.

정답

import io, sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') 

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

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

+ Recent posts