#1041
문제 설명
영문자 1개를 입력받아 그 다음 문자를 출력해보자.
영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다.
참고
숫자는 수를 표현하는 문자로서 '0' 은 문자 그 자체를 의미하고, 0은 값을 의미한다.
힌트
아스키문자표에서 'A'는 10진수 65로 저장되고 'B'는 10진수 66으로 저장된다.
따라서 문자도 값으로 덧셈을 할 수 있다.
입력
영문자 1개가 입력된다.
출력
다음 문자를 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
char a=sc.nextLine().charAt(0);
System.out.println((char)(a+1));
}
}
|
#1042
문제 설명
정수 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로 나눈 몫을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int n=a/b;
System.out.println(n);
}
}
|
#1043
문제 설명
정수 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로 나눈 나머지를 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int n=a%b;
System.out.println(n);
}
}
|
#1044
문제 설명
정수를 1개 입력받아 1만큼 더해 출력해보자.
단, -2147483648 ~ +2147483647 의 범위로 입력된다.
주의
계산되고 난 후의 값의 범위(데이터형)에 주의한다.
참고
어떤 변수(a)에 값을 저장한 후 a+1 의 값을 출력할 수도 있고,
++a 연산을 한 후에 출력할 수도 있다.
++a, --a, a++, a-- 와 같이 어떤 변수의 앞이나 뒤에 붙여
변수에 저장되어있는 값을 1만큼 더하거나 빼주는 연산자를 증감연산자라고 한다.
증감연산자를 변수 앞에 붙이면 그 변수를 사용하기 전에 증감을 먼저 수행하고,
증감연산자를 변수 뒤에 붙이면 일단 변수에 저장되어있는 값을 먼저 사용하고 난 후
나중에 증감을 수행한다.
입력
정수 1개가 입력된다.
단, -2147483648 ~ +2147483647 의 범위로 입력된다.
출력
입력된 정수에 1을 더해 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long a=sc.nextLong();
System.out.println(a+1);
}
}
|
#1045
문제 설명
정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
단 0 <= a, b <= 2147483647, b는 0이 아니다.
입력
정수 2개가 공백을 두고 입력된다.
출력
첫 줄에 합
둘째 줄에 차,
셋째 줄에 곱,
넷째 줄에 몫,
다섯째 줄에 나머지,
여섯째 줄에 나눈 값을 순서대로 출력한다.
(실수, 소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
System.out.println((String.format("%.2f",(float)a/b)));
}
}
|
#1046
문제 설명
정수 3개를 입력받아 합과 평균을 출력해보자.
단, -2147483648 ~ +2147483647
입력
정수 3개가 공백을 두고 입력된다.
단, -2147483648 ~ +2147483647
출력
합과 평균을 줄을 바꿔 출력한다.
평균은 소수점 이하 둘째 자리에서 반올림해서 소수점 이하 첫째 자리까지 출력한다.
* 만약 여기서
평균을 구할 때 float n=(a+b+c)/3;
와 같이 계산하게 된다면 int끼리의 연산이므로 10,3,96과 같은 경우 36.3이 아닌 36.0이 나온다.
할거면 float n=(float)(a+b+c)/3;와 같이 형변환을 해주어야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int c=sc.nextInt();
float n=(float)(a+b+c)/3;
System.out.println(a+b+c);
System.out.println(String.format("%.1f", n));
}
}
|
#1047
문제 설명
정수 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배 곱한 정수를 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
System.out.println(a<<1);
}
}
|
#1048
문제 설명
정수 2개(a, b)를 입력받아 a를 2의 b배 곱한 값으로 출력해보자.
0 <= a <= 10, 0 <= b <= 10
참고
예를 들어 1 3 이 입력되면 1을 2의 3(8)배 하여 출력한다.
예시
int a=1, b=10;
printf("%d", a << b); //210 = 1024 가 출력된다.
입력
정수 2개가 공백을 두고 입력된다.
0 <= a, b <= 10
출력
a 를 2의 b배 만큼 곱한 값을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
System.out.println(a<<b);
}
}
|
#1049
문제 설명
두 정수(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을 출력한다.
*참고
단순히 비교연산자를 통해 출력시 true, false 형태로 출력된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
if(a>b)
System.out.println(1);
else
System.out.println(0);
}
}
|
#1050
문제 설명
두 정수(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을 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
if(a==b)
System.out.println(1);
else
System.out.println(0);
}
}
|
'알고리즘 > 코드업' 카테고리의 다른 글
[Java] 코드업 (CodeUp) 자바 풀이 1061~1070 (0) | 2020.09.15 |
---|---|
[Java] 코드업 (CodeUp) 자바 풀이 1051~1060 (0) | 2020.08.24 |
[Java] 코드업 (CodeUp) 자바 풀이 1031~1040 (0) | 2020.07.09 |
[Java] 코드업 (CodeUp) 자바 풀이 1021~1030 (0) | 2020.05.15 |
[Java] 코드업 (CodeUp) 자바 풀이 1011~1020 (0) | 2020.05.14 |