본문 바로가기
  • Adillete
【스터디노트】/▶알고리즘문제풀기

알고리즘 연습문제Q7-10

by 아딜렛 2024. 5. 13.

자료구조와 함께배우는 알고리즘입문-자바편 p. 31

 

알고리즘 연습문제 Q7

1~10의 합 (1+10)*5 같은 1부터 n까지의 정수 합을 구하는 프로그램 만들기

연습문제7
public class SumFor2 {
    public static void main(String[] args) { Scanner stdIn = new Scanner(System.in);

    System.out.println("1부터 10까지의 합을 구합니다.");
      
        int n = stdIn.nextInt();

        int sum = 0;

        for(int i= 1; i<=n; i++)
            sum += i;

        System.out.println("1부터"+n+"까지의 합은"+sum+"입니다");
    }
}

하나도 모르겠네 ㅎㅎㅎ

import java.util.Scanner;

class SumGauss {

	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);

		System.out.println("1에서 n까지의 총합을 구합니다.");
		System.out.print("n의 값 : ");
		int n = stdIn.nextInt();

		int sum = (n + 1) * (n / 2) + (n % 2 == 1 ? (n + 1) / 2 : 0);   // 총합

		System.out.println("1에서 " + n + "까지의 총합은 " + sum + "입니다.");
	}
}

 

연습문제8

연습문제 8
public class SumFor3 {
    public static void main(String[] args) { Scanner stdIn = new Scanner(System.in);

    System.out.println("a부터 b까지의 합을 구합니다.");
      
        int n = stdIn.nextInt();

        int sum = 0;

        for(int i= 1; i<=n; i++)
            sum += i;

        System.out.println("a부터"+b+"까지의 합은"+sum+"입니다");
    }
}

}
}

import java.util.Scanner;

class SumOf {

	static int sumof(int a, int b) {
		int min;		// a, b의 작은 쪽의 값 
		int max;		// a, b의 큰 쪽의 값 

		if (a < b) {
			min = a;  max = b;
		} else {
			min = b;  max = a;
		}

		int sum = 0;		// 총합
		for (int i = min; i <= max; i++)
			sum += i;
		return sum;
	}

	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);

		System.out.println("a와 b를 포함하여 그 사이에 있는 모든 정수의 총합을 구합니다.");
		System.out.print("a의 값 : ");  int a = stdIn.nextInt();
		System.out.print("b의 값 : ");  int b = stdIn.nextInt();

		System.out.println("정수 a, b 사이의 모든 정수의 총합은 " + sumof(a, b) + "입니다.");
	}
}

몰랐던점:

  • 물음표연산자 (?) 사용법 ifelse 사용법

출처: https://blog.naver.com/50after/220859466724

 

물음표 연산자 ?:를 이용한 ifelse단순화

안녕하세요!! 오늘은 잘 사용은 안 하지만 알아두면 좋은 자바의 3항 연산자인 물음표(?)에 대해서 알아보...

blog.naver.com

 

n%2==1 ? (n+1)/2 : 0  n%2==1 가 맞으면  (n+1)/2을 연산한다. 틀리면  0을 내보낸다.

 

  • a와 b 의 대소관계에 상관없이 합을 구하세요. 이렇게 많은 말이 필요한지 몰랐음. 까다롭다잉
if (a < b) {
			min = a;  max = b;
		} else {
			min = b;  max = a;
		}

 

Q9. b-a를 출력하는 프로그램을 작성하세요.

변수 b에 입력한 값이 a값 이하면 변수 b값을 다시 입력하세요

 

if (a<b) {
min =a;
max=b;}else { 
}
System.out.print("a의 값 : ");
		int a = stdIn.nextInt();

		int b;

import java.util.Scanner;

class Difference {

	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);

		System.out.print("a의 값 : ");
		int a = stdIn.nextInt();

		int b;
		while (true) {
			System.out.print("b의 값 : ");
			b = stdIn.nextInt();
			if (b > a) break;
			System.out.println("a보다 큰 값을 입력하세요!");
		}

		System.out.println("b - a는 " + (b - a) + "입니다.");
	}
}

 

if (b > a) break;

System.out.println("a보다 큰 값을 입력하세요!");

 

아까부터 삽질

b>a 이면 break 이고
b<a 이면 " a보다 큰 값을 입력하세요!" 가 나온다. 

Q10. 하나도 모름 ^ㅁ<

'【스터디노트】 > ▶알고리즘문제풀기' 카테고리의 다른 글

[알고리즘] 위상정렬  (0) 2025.02.28
[버블정렬]  (0) 2025.01.29