Skip to content

K-SIIK/week02-Algorithm-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://velog.io/@k_siik/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B3%BC%EC%A0%9C

2주차에는 프로그래밍 기초를 배우게 된다. 각 주특기에 사용될 언어를 배우고 그 언어로 알고리즘 문제를 풀어보는 시간을 가지게 된다. 2주차에 들어가기에 앞서 기초적인 지식을 요하는 과제를 제출해야만 한다. 과제는 다음과 같다.

1. 다음 코드를 실행하면 출력 결과로 5를 기대했는데 4가 출력되었습니다. 어디에서 잘못 작성된 것일까요?

int var1=5;
int var2=2;
double var3=var1/var2;
int var4=(int)(var3*var2);
System.out.println(var4);

이 코드에서 주목해야할 것은 3번 라인이다. int 타입의 변수 두개의 연산을 double이라는 변수에 저장하게 된다. 여기서 5 / 2 의 값을 상식적으로 생각해보면 2.5일테지만 이 코드에서는 int 타입과 int 타입의 연산의 결과는 소수점 자리수를 버린 값인 2로 다르다. 또 int 타입의 2라는 값을 double 타입의 변수 var3에 저장하면 2.0으로 저장되게 된다. 따라서 var2인 2의 값과 곱해서 int 타입으로 형변환을 하면 var4에는 4가 저장되게 된다. 4가 아니라 5가 저장되게 하기위해서는 3번라인을 수정해야 한다. int 타입과 int 타입의 연산의 결과를 double로 형변환해주면 2.5가 double 타입의 var3로 저장되게 될것이다.

double var3 = (double) var1 / var2;

2. 다음 코드를 실행했을 때 출력 결과는 무엇입니까? (증감연산자에 대해 알아보세요!)

int x=10;
int y=20;
int z = (++x) + (y--);
System.out.println(z);

연산자가 앞에 붙은 것을 전위, 뒤에 붙은 것을 후위 연산자라고 한다. 전위 연산자는 먼저 증감 후 코드 실행을 하는 연산자이고, 후위 연산자는 먼저 코드를 실행하고 뒤에 증감을 한다. 따라서

z = 11 + 20;
z = 31

이 출력된다.

3. while문과 Math.random() 메소드를 이용해서 2개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성해보세요. 눈의 합이 5가 되는 조합은 (1,4), (4,1), (2,3), (3,2)입니다.

// 출력예시
시작!
(3,6)
(2,6)
(1,4)
끝!
public class DiceGame {
	public static void main(String[] args) {
    	System.out.println("시작~");
   		while(true) {
        	int num1 = (int) (Math.random() * 6) + 1;
            int num2 = (int) (Math.random() * 6) + 1;
            
            System.out.println("(" + num1 + "," + "num2" + ")");
            if (num1 + num2 == 5) {
             	System.out.println("끝");
                break;
            }
        }
    }
}
시작~
(2,4)
(3,3)
(2,4)
(1,6)
(1,3)
(6,4)
(6,6)
(4,1)
끝

두 개의 변수를 난수로 1~6 사이의 값을 저장한다. 이 두 수를 계속 출력하면서 while문이 돌아가는데 만약 두 수의 합이 5가 되는 경우 while문을 탈출하도록 코드를 짰다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages