[220923] 프로그래머스 알고리즘 문제

Younseo·2022년 9월 23일
0

알고리즘

목록 보기
3/3

1. 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.

별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

[제한조건]
n과 m은 각각 1000 이하인 자연수입니다.
import java.util.Scanner;

class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        for(int i=0; i<b; i++){
            for(int j=0; j<a; j++){
                System.out.print("*");
            }
            System.out.println();
        }

    }
}

✔ Scanner 클래스
문자열 받아올 때 사용하는 클래스

 Scanner scanner = new Scanner(System.in);
      String str = scanner.next();
      int i = scanner.nextInt();
      long l = scanner.nextLong();
 Scanner sc = new Scanner(System.in);
      String str = sc.next();
      int i = sc.nextInt();
      long l = sc.nextLong();

✔ next()

next(); : 통째로가 사용자가 입력한 문자열 값(엔터치기 전 공백은 포함되지 않음)
nextInt(); : 통째로가 사용자가 입력한 정수 값
nextLine(); : 통째로가 사용자가 입력한 문자열 값(엔터치기 전 공백까지 포함한다)






2. 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

[제한 조건]
num은 int 범위의 정수입니다.
0은 짝수입니다.
class Solution {
    public String solution(int num) {
        String answer = "";
        if (num % 2 == 0) answer = "Even";
        else answer="Odd";
        return answer;
    }
}






3. 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

[제한 조건]
s는 길이가 1 이상, 100이하인 스트링입니다.
class Solution {
    public String solution(String s) {
        return s.substring((s.length()-1)/2, s.length()/2+1);
    }
}







4. 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

[제한 조건]
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
class Solution {
    public long solution(int a, int b) {
        return (long) (a+b)*(Math.abs(a-b)+1)/2;
    }
}
class Solution {

    public long solution(int a, int b) {
        return sumAtoB(Math.min(a, b), Math.max(b, a));
    }

    private long sumAtoB(long a, long b) {
        return (b - a + 1) * (a + b) / 2;
    }
}
class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); i++) 
          answer += i;

      return answer;
  }
}
class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      if(a!=b){
          for(int i=Math.min(a,b);i<=Math.max(a,b);i++){
              answer+=i;
          }
      }else{
          answer=a;
      }
      return answer;
  }
}
class Solution {
  public long solution(int a, int b) {
      long answer = 0;

      if (a < b) {
          for (int i = a; i <= b; i++) {
              answer += i;
          }
      } else {
          for (int i = b; i <= a; i++) {
              answer += i;
          }
      }
      return answer;
  }
}

0개의 댓글