구름 - 문제풀이

anonymous·2021년 9월 30일
0

목차

문제

코드

결과


소수 판별

https://level.goorm.io/exam/43238/%EC%86%8C%EC%88%98-%ED%8C%90%EB%B3%84/quiz/1

코드

import java.io.*;
class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		System.out.println(checkIfPrime(n));
	}//end
	public static String checkIfPrime(int n){
		/*
		Prime: > 1 자기자신으로 또는 1로만 나누기가 가능
		예) 2, 3, 5, 7 
		*/
		int i; 
		if(n<=1){
			 return "False";
		}else{
			for(i=2;i<=n/2;i++){    
				if(n%i == 0){    
					return "False";
		    }
			}
		}	
		return "True";
	}//end	
}//end

결과

도형 만들기

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=980&sca=2020

코드

import java.io.*;
class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());		
		int[][] result = makeSnail(n);
		for (int i = 1 ; i < result.length; i++){ //for loop to print the array  
			for(int j = 1 ; j < result.length; j++){
				System.out.print( result[i][j] + " ");    
			}
			System.out.println();  
    }  		
	}//end
	
	public static int[][] makeSnail(int n){
		int xyArray[][] = new int[n+1][n+1];
		int x = 1, y = 0; 
		int num = 1;
		int m = n;
	  while ( m > 0){
			//RIGHT
			for (int i = 1; i <= m; i++) { // 오른쪽으로 m번 이동하면서 배열을 채운다.
          y++;
          xyArray[x][y] = num++;
      }
			m--;
			//DOWN
			for (int i = 1; i <= m; i++) { 
					x++;
					xyArray[x][y] = num++;
			};
			//LEFT
			for (int i = 1; i <= m; i++) {
					y--;
					xyArray[x][y] = num++;
			}
      m--; 
			//UP
			for (int i = 1; i <= m; i++) { 
					x--;
					xyArray[x][y] = num++;
			};
			
		}//end
		return xyArray;
	}//end
	
}//end

결과


문자열 뒤집기

https://level.goorm.io/exam/43219/%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%92%A4%EC%A7%91%EA%B8%B0/quiz/1

코드

import java.io.*;
class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input = br.readLine();
		System.out.println(reverseStr(input));
	}
	
	public static String reverseStr(String input){
		String reverse="";
		for(int i = input.length() - 1 ; i >= 0; i--){
			reverse = reverse + input.charAt(i);
		}
		return reverse;
	}
	
}

결과

369 알고리즘

코드

import java.io.*;
class Main {
	public static void main(String[] args) throws Exception {
    // 문제 : calcul 메소드로 구구단 만들기
		// 100 이상의 숫자도 유효하게\
		// 368 게임 : 3의 자리수가 나오면 짝 3의 자리수가 2번 나오면 짝짝 3번이면 짝짝짝
		int num = 100;
		
		for(int i = 1 ; i<=num; i++){
			int count = calcul(i);			
			if(count==0){
				System.out.print("");
				continue;
			}
			
			System.out.print(i+" ");
			
			for(int j=0; j<count; j++){
				System.out.print("짝");
			}	
			System.out.println();		
		}
	
	}//end
	
	public static int calcul(int num){
		int count = 0;
		String chkNum = String.valueOf(num);
		
		for(int i=0; i<chkNum.length(); i++){
			int result = Character.getNumericValue(chkNum.charAt(i));
			if(result==0)
				count--;
			if(result%3==0 || result%6==0 ||result%9==0){
				count++;
			}
		}
		return count;
	}	
}

결과

로또의 최고 순위와 최저 순위

https://programmers.co.kr/learn/courses/30/lessons/77484?language=java

코드

//getMaxMinLottoRank
class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int zero = 0;
        int matched = 0;
        
        for (int l : lottos) {
            if (l == 0) zero++;
            else {
                for (int w : win_nums) {
                    if (l == w) {
                        matched++;
                        break;
                    }
                }
            }
        }
        
        int min = matched;
        int max = matched + zero;
        
        int[] answer = {Math.min(7 - max, 6), Math.min(7 - min, 6)};
        return answer;
    }    
}

/*
해설 : (자료의 특징만 명확히 파악해야함)
lottos = 갖고 있는 로또 번호
win_nums = 우승 로또 번호
zero = 지워진 횟수
matched = 일치하는 횟수 

min = 최소값 
max = 최대값
l = 각 로또 값 번호  
w = 각 우승 번호 
answer = 
순위	당첨 내용
1	6개 번호가 모두 일치
2	5개 번호가 일치
3	4개 번호가 일치
4	3개 번호가 일치
5	2개 번호가 일치
6(낙첨)	그 외
*/

결과

참고

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=980&sca=2020

https://hianna.tistory.com/543

https://gmlwjd9405.github.io/2018/05/08/algorithm-shell-sort.html

profile
기술블로거입니다

0개의 댓글