개발에 AtoZ까지

[JAVA] 코드업(CodeUp) 풀이 1041~1050 본문

코딩테스트 준비/코드업100제

[JAVA] 코드업(CodeUp) 풀이 1041~1050

AtoZ 개발자 2020. 12. 28. 17:24
반응형

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

문제

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

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

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

힌트
아스키문자표에서 'A'는 10진수 65로 저장되고 'B'는 10진수 66으로 저장된다.
따라서 문자도 값으로 덧셈을 할 수 있다.


[입력]
영문자 1개가 입력된다.

[출력]
다음 문자를 출력한다.

 

코드


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

문제

정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자.
단, -2147483648 <= a <= b <= +2147483647, b는 0이 아니다.

참고
C언어에서 정수/정수 연산의 결과는 정수(몫)로 계산된다.
실수/정수, 정수/실수, (float)정수/정수, 정수/(float)정수 등의 연산 결과는 실수 값으로 계산된다.

(float)(정수/정수)는 정수/정수의 결과인 정수 값을 실수형(float)로 바꾸는 것으로,
계산 결과인 정수 값이 실수 형태로 변환되는 것이니 주의해야 한다.

정수/실수 계산결과가 자동으로 실수형으로 바뀌는 것을 묵시적 (데이터)형변환이라고 하고,
어떤 값이나 결과의 데이터형을 강제로 바꾸는 것을 명시적 (데이터)형변환이라고 한다.

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

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

[입력]
정수 2개(a, b)가 공백을 두고 입력된다.
단, -2147483648 <= a <= b <= +2147483647

[출력]

a를 b로 나눈 몫을 출력한다.

 

코드


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

문제

정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.
단, 0 <= a, b <= +2147483647, b는 0이 아니다.

참고
C언어에서 정수%정수 연산의 결과는 나눈 나머지로 계산된다.

% 연산자(modulus, mod 연산) 수학자 가우스가 생각해낸 연산으로,
어떤 정수를 다른 정수로 나누고 난 후 남는 나머지를 계산하는 연산이다.

단, 음(-)이 아닌 정수에 대해서만 연산된다.

[입력]
정수 2개(a, b)가 공백을 두고 입력된다.단, 0 <= a, b <= +2147483647, b는 0이 아니다.

[출력]
a 를 b로 나눈 나머지를 출력한다.

 

코드


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

문제

정수를 1개 입력받아 1만큼 더해 출력해보자.
단, -2147483648 ~ +2147483647 의 범위로 입력된다.

주의
계산되고 난 후의 값의 범위(데이터형)에 주의한다.

참고
어떤 변수(a)에 값을 저장한 후 a+1 의 값을 출력할 수도 있고,
++a 연산을 한 후에 출력할 수도 있다.

++a, --a, a++, a-- 와 같이 어떤 변수의 앞이나 뒤에 붙여
변수에 저장되어있는 값을 1만큼 더하거나 빼주는 연산자를 증감연산자라고 한다.

증감연산자를 변수 앞에 붙이면 그 변수를 사용하기 전에 증감을 먼저 수행하고,
증감연산자를 변수 뒤에 붙이면 일단 변수에 저장되어있는 값을 먼저 사용하고 난 후
나중에 증감을 수행한다.

[입력]
정수 1개가 입력된다.단, -2147483648 ~ +2147483647 의 범위로 입력된다.

[출력]
입력된 정수에 1을 더해 출력한다.

 

코드


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

문제

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

[입력]
정수 2개가 공백을 두고 입력된다.

[출력]
첫 줄에 합둘째 줄에 차,셋째 줄에 곱,넷째 줄에 몫,다섯째 줄에 나머지,여섯째 줄에 나눈 값을 순서대로 출력한다.(실수, 소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력)

 

코드


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

문제

정수 3개를 입력받아 합과 평균을 출력해보자.
단, -2147483648 ~ +2147483647

[입력]
정수 3개가 공백을 두고 입력된다.
단, -2147483648 ~ +2147483647

[출력]

합과 평균을 줄을 바꿔 출력한다.
평균은 소수점 이하 둘째 자리에서 반올림해서 소수점 이하 첫째 자리까지 출력한다.

 

코드


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

문제

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

참고
*2 의 값을 출력해도 되지만,
정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 <<, >>를 이용한다.

2진수 형태로 저장되어 있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로
지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 반으로 줄어드는데,

왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고,

오른쪽 비트시프트(>>)가 될 때에는
왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가된다.

범위(32비트)를 넘어서 이동되는 비트는 삭제된다.

예시
int a=10;
printf("%d", a<<1); //10을 2배 한 값인 20 이 출력된다.
printf("%d", a>>1); //10을 반으로 나눈 값인 5 가 출력된다.
printf("%d", a<<2); //10을 4배 한 값인 40 이 출력된다.
printf("%d", a>>2); //10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.

[입력]
정수 한 개가 입력된다.
단, -1073741824 ~ +1073741823

[출력]

2배 곱한 정수를 출력한다.

 

코드


 

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

문제

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


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

예시
int a=1, b=10;
printf("%d", a << b); //210 = 1024 가 출력된다.

[입력]
정수 2개가 공백을 두고 입력된다.
0 <= a, b <= 10

[출력]

a 를 2b배 만큼 곱한 값을 출력한다.

 

코드


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

문제

두 정수(a, b)를 입력받아

a가 b보다 크면 1을, a가 b보다 작거나 같으면 0을 출력하는 프로그램을 작성해보자.


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

비교/관계연산자 > 는
왼쪽의 값이 오른쪽 값 보다 큰 경우 참(true)을 나타내는 정수값 1로 계산하고,
그 외의 경우에는 거짓(false)를 나타내는 정수값 0으로 계산한다.

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

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

예시
printf("%d", 123<456); //비교 연산자 < 의 계산 결과인 1(참)이 출력된다.

[입력]
두 정수 a, b가 공백을 두고 입력된다.
-2147483648 <= a, b <= +2147483647

[출력]

a가 b보다 큰 경우 1을, 그렇지 않은 경우 0을 출력한다.

 

코드


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

문제

두 정수(a, b)를 입력받아
a와 b가 같으면 1을, 같지 않으면 0을 출력하는 프로그램을 작성해보자.


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

비교/관계연산자 == 는
두 개의 값이 같은 경우 참(true)을 나타내는 정수값 1로 계산하고,
다른 경우 거짓(false)를 나타내는 정수값 0으로 계산한다.

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

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

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

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

[입력]
두 정수 a, b가 공백을 두고 입력된다.
-2147483648 <= a, b <= +2147483647

[출력]

a와 b의 값이 같은 경우 1을, 그렇지 않은 경우 0을 출력한다.

 

코드

반응형
Comments