본문 바로가기

Programming/Codeup.kr기초100제 && 컴퓨터 이야기

[기초-산술연산] 정수 두 개 입력받아 나눈 몫 출력하기 && 증강현실

2016년 7월 '포켓몬고'가 엄청난 인기를 끌었다. '포켓몬고'는 증강현실로 카메라를 이용해 길거리에 포켓몬이 나타난 것처럼 보이게 하는 증강현실 기술을 사용하였다.

증강현실(Augmented Reality, AR)은 원래 환경에 가상 사물이나 정보를 입혀 원래 환경에 존재하는 사물처럼 보이게 하는 그래픽 기법으로 가상현실의 한 분야이다. 1990년 보잉사가 작업자들에게 항공기의 전선을 조립하는 것을 돕기 위한 과정에서 처음 증강현실이란 용어를 만들었다. 현실세계에 부가정보가 있는 가상세계가 합쳐져 하나의 영상으로 보여주므로 혼합현실(Mixed Reality, MR)이라고도 한다. 주로 구글 글라스, 마이크로소프트 홀로렌즈처럼 웨어러블 디바이스에 많이 쓰인다. 

로널드 아즈마라는 분이 증강 현실에 대한 정의를 내렸는데 증강 현실의 특징을 가장 잘 설명해주고 있다. 그 정의는 다음과 같다.

●현실의 이미지와 가상의 이미지를 결합한 것

●실시간으로 상호작용이 가능한 것

●3차원의 공간 안에 놓인 것

예를 들어 음식집 간판을 보면 자동으로 사람들의 리뷰나 평가를 옆에 띄어준다거나 아무것도 없는 손목을 보면 자동으로 시계가 보여진다는 식이다.

문제 설명

정수 두 개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력하는 프로그램을 작성해보자.
(단, 입력되는 두 개의 정수 a, b의 범위는 -2147483648 ~ 2147483647이고, b는 0이 아니다.)

입력

정수 두 개(a, b)가 공백을 두고 입력된다.
(단, a, b의 범위는 -2147483648 ~  2147483647이고, b는 0이 아니다.)

출력

a를 b로 나누었을 때의 몫을 정수형태로 출력한다. 

예를 들어 5÷2=2.5 인경우, 2를 출력한다.

입력 예시

1 3

출력 예시

0

도움말

C언어에서 a/b 연산의 결과는 a를 b로 나눈 몫이 계산된다.

실수/정수, 
정수/실수, 
(float)정수/정수, 
정수/(float)정수 
의 연산은 나눈 결과가 실수로 계산된다.

(float)(정수/정수)는 정수/정수의 결과인 정수를 실수형(float)로 바꾸는 것으로, 정수가 실수 형태로 변환되는 것이니 주의한다.

정수/실수... 에서 계산 결과가 실수형으로 바뀌는 것과 같이 계산 결과의 데이터형이 자동으로 바뀌는 것을 묵시적 (데이터)형 변환이라고 하고,

"(데이터형)변수또는값" 과 같이 어떤 값이나 결과의 데이터형을 바꾸어주는 것을 명시적 (데이터)형 변환이라고 한다.

int a;
scanf("%d", &a);
printf("%f", (float)a);

와 같이 실행하면 정수로 저장되어있는 값을 실수형(float)으로 변환하여 출력한다.


Python에선 2.X버전은 C언어 처럼 정수끼리 연산은 정수로 나왔지만, 3이상부턴 소수로 나온다. 결과출력을 int()로 묶어주면 C언어처럼 나오긴 한다.

또 다른 방법으로는 몫 연산자가 있다. 기존 나누기 연산기호인'/'에서 '/'하나를 더 붙여서 '//'로 사용 가능하다. 예) a//b