본문 바로가기

알고리즘 정리/[swea]

[swea] 공부기록 day01

D2 정답률 높은 문제부터 풀어보았다.

swea에서 자바로 제출할 땐 Solution 클래스로 제출해야 한다.

 

1945 간단한 소인수분해

import java.util.Scanner;

public class Solution{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int [] arr = new int[n];
		for (int i=0; i<n; i++)
		{
			int [][] N = {{2,0}, {3,0}, {5,0}, {7,0}, {11,0}};
			arr[i] = scan.nextInt();
			
			for(int j=0; j<5; j++)
			{
				while(true)
				{
					if(arr[i] % N[j][0] ==0)
					{
                        N[j][1] += 1;
                        arr[i] /= N[j][0];
                    }
					else
						break;
				}
			}
			System.out.printf("#%d %d %d %d %d %d\n",i+1,N[0][1], N[1][1],N[2][1], N[3][1], N[4][1]);
		}
		
	}
}

 

 

1986 지그재그 숫자

import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int [] arr = new int[n];

		for(int i=0; i<n; i++)
		{
			int result =1;
			arr[i] = scan.nextInt();
			for(int j=2; j<=arr[i];j++)
			{
				if(j%2 == 0)
					result = result - j;
				else
					result = result + j;
			}
			arr[i] = result;
		}
		for(int i=0; i<n; i++)
		System.out.printf("#%d %d\n", i+1,arr[i]);
		
	}
}

 

1288. 새로운 불면증 치료법

import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int [] arr = new int[n];
		
		for(int i=0; i<n; i++)
		{
			int p = 1;
			arr[i] = scan.nextInt();
			int [] num = new int[10];
			while(!allNonZero(num))
			{
				String s = Integer.toString(arr[i] * p);
				for(int k=0; k<s.length(); k++)
				{
					int number = Integer.parseInt(s.substring(k,k+1));
					num[number] ++;
				}
			
				p ++;
				
			}
			arr[i] = arr[i]*(p-1);
		}
		
		for(int i=0; i<n; i++)
		System.out.printf("#%d %d\n",i+1,arr[i]);
		
	}
	private static boolean allNonZero(int[] arr) {
		for(int num : arr) {
			if(num == 0) {
				return false;
			}
		}
		return true;
	}
	
}

 

1284. 수도 요금 경쟁

import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int [] arr = new int[n];
		int A,B=0;
		
		for (int i=0; i<n; i++)
		{
			
			int P = scan.nextInt();
			int Q = scan.nextInt();
			int R = scan.nextInt();
			int S = scan.nextInt();
			int W = scan.nextInt();
			A = W*P;
			if(W>R)
				B = Q + (W-R)*S;
			else
				B = Q;
			arr[i] = A<B ? A : B;
		}
		for(int i=0; i<n; i++)
			System.out.printf("#%d %d\n",i+1, arr[i]);
	}
	
}

 

1989. 초심자의 회문 검사

 

nextInt()와 nextLint() 을 같이 쓰면 개행 문자 처리가 발생할 수 있으므로 다음과 같이 개행 문자를 제거해야한다. 

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        scan.nextLine(); // 개행 문자 제거
        String[] arr = new String[n];
        for (int i = 0; i < n; i++) {
            arr[i] = scan.nextLine();
            int length = arr[i].length();
            boolean isSame = true;
            for (int j = 0; j < (length + 1) / 2; j++) {
                if (!arr[i].substring(j, j + 1).equals(arr[i].substring(length - 1 - j, length - j))) {
                    isSame = false;
                    break;
                }
            }
            if (isSame) {
                arr[i] = "1";
            } else {
                arr[i] = "0";
            }
            
        }
        for(int i=0; i<n; i++)
        	System.out.printf("#%d %s\n", i + 1, arr[i]);
    }
}

 

'알고리즘 정리 > [swea]' 카테고리의 다른 글

[swea] 공부기록 day06  (0) 2024.05.09
[swea] 공부기록 day05  (0) 2024.05.08
[swea] 공부기록 day04  (0) 2024.05.08
[swea] 공부기록 day03  (0) 2024.05.06
[swea] 공부기록 day02  (0) 2024.05.05