[TIL] - 조건문, 반복문, 배열

장동희·2023년 2월 14일
0

TIL

목록 보기
2/16

오늘 조건문, 반복문, 배열의 개념을 배우고 문제를 풀었다. TIL에서는 오늘 문제를 풀면서 어려웠던 문제들의 풀이를 하겠습니다.


첫번째 문제 :

//4-6. 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하세요.
class Exercise4_6 {
    public static void main(String[] args) {
        /*빈 칸*/		
    } 
}

문제접근:

문제를 풀때 생각해본것이 우선 눈의 합이 6이 되는 조건이 필요할것이라고 생각했고 모든 경우의 수를 출력하기위해 조건문을 이용해 간단하게 만드려고 접근했다.

문제풀이 :

for(int i = 1; i <= 6; i++){    //주사위는 1 ~ 6을 나타내야하기때문에 이렇게 나타냈다.
	for(int j = 1; j <= 6; i++){  //다른 주사위에도 반복문을 만들었다.
    	if(i + j ==6){		// 주사위 눈의 합이 6이 되는 조건
        	System.out.println(i + j);
            }
     }
 }
 

두번째문제 :

//4-9. int 타입의 변수 num이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하세요. 
//만일 변수 num의 값이 12345라면, ‘1+2+3+4+5’의 결과인 15를 출력하세요.
//문자열로 변환하지 말고 숫자로만 처리하세요.
public class Exercise4_9 {
    public static void main(String[] args) {
        int num = 12345;
        int sum = 0;
        /*빈 칸*/
        System.out.println("sum="+sum);
    }
}//예상 결과 : sum=15

문제접근 :

우선 문자열로 변환하지 말고 숫자로만 처리하세요라는 조건을 보고
각 자리의 합을 더한 결과를 출력하기위해 10으로 나눈 나머지를 더하면 되겠다고 접근했고 조건문을 num > 0 이면 반복하도록 반복문을 사용하면 되겠다고 생각했다.

문제풀이 :

while (num > 0){	//num이 0보다 클때 반복되는 반복문
            sum += num % 10;	// 나머지를 sum에 더해 각자리의 수를 저장한다.
            num /= 10;	//반복될때 10으로 나눠 모든 자릿수를 얻는다.

세번째 문제 :

//5-5. 다음은 1과 9 사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램이다.
//코드를 완성하세요. 다만 Math.random()을 사용했기 때문에 실행 결과 예시와 다를 수 있습니다.
class Exercise5_5{
    public static void main(String[] args) {
        int[] ballArr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        int[] ball3 = new int[3];
        		
        // 배열 ballArr의 임의의 요소를 골라서 위치를 바꾼다
        for (int i = 0; i < ballArr.length; i++) {
            int j = (int) (Math.random() * ballArr.length);
            int tmp = 0;
            
           /*빈 칸*/
        }
        		
        // 배열 ballArr의 앞에서 3개의 수를 배열 ball3로 복사한다
        
        /*빈 칸*/
        
        for (int i = 0; i < ball3.length; i++) {
            System.out.print(ball3[i]);
        }
    }//end of main
}//end of class

문제접근 :

int j = (int) (Math.random() * ballArr.length); 의해 j안에는 1 ~ 9사이의 난수가 들어있어 tmp, ballArr[i], ballArr[j]를 각각 대입해 위치를 바꿔줘야겠다 생각했고 배열 ballArr의 앞에서 3개의 수를 배열 ball3로 복사하기 위해 for문을 사용하여 ball3[]배열의 값을 넣어줘야겠다 생각했다.

문제풀이 :

//첫번째 빈칸
			int tmp = 0;			// 위치를 바꾸기 위해 tmp를 선언 및 초기화
			tmp = ballArr[i];		// tmp의 ballArr[i]를 넣는다
            ballArr[i] = ballArr[j]; // ballArr[i]의 난수의 값을 갖고 있는 ballArr[j]를 넣는다
            ballArr[j] = tmp;		//ballArr[j]의 tmp값을 넣는다

느낀점 :

조건문, 반복문, 배열은 실제 현업에서도 많이 사용되는 코드이기때문에 이해하려고 했고 아직 많이 부족한거같아 더 많은 공부가 필요하다고 느꼈습니다. 앞으로 배울 부분에서도 응용하기위해 더 많은 노력을 해야할것같습니다.

0개의 댓글