알고리즘

[Array(1,2차원 배열)] 큰 수 출력하기 & 보이는 학생 & 가위바위보

날아 2023. 3. 23. 17:58

Q.N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램

단, 첫번째 수는 무조건 출력한다. 

Class Main {
	public ArrayList<Integer> solution(int n, int[] arr){
    	ArrayList<Integer> answer = new ArrayList<>();
        
        answer.add(arr[0]);
        for(int i=1; i<n; i++){
        	if(arr[i]>arr[i-1]) {
            	answer.add(arr[i]);
            }
        }
        
        return answer;
    }
    
    public static void main(String[] args){
    	Main T = new Main(); 
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt(); 
        int[] arr = new int[n];
        for(int i=0; i<n, i++) {
        	arr[i] = kb.nextInt();
        }
        for(int x : T.solution(n, arr)){
        	System.out.print(x+" ");
        }
        
        System.out.print(T.solution(str));
    }
}

 


Q. 학생이 일렬로 서있을 때 선생이 몇 명을 볼 수 있는지 구하시오

단, 어떤 학생이 자기 앞에 서있는 학생들보다 크면 그 학생은 보이고, 작거나 같으면 보이지 않는다. 

Class Main {
	public int solution(int n, int[] arr){
    	int answer=1;
        int max = arr[0];
        
        for(int i=1; i<n; i+=) {
        	if(arr[i]>max){
            answer++;
            max = arr[i];
            }
        }
        
        return answer;
    }
    
    public static void main(String[] args){
    	Main T = new Main(); 
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt(); 
        int[] arr = new int[n];
        for(int i=0; i<n, i++) {
        	arr[i] = kb.nextInt();
        }
        System.out.print(T.solution(n,arr));
    }
}

 


Q. A,B 두 사람이 N번의 게임을 하여 A가 이기면 A를 출력하고,  B가 이기면 B를 출력한다. 비길 경우에는 D를 출력한다. 

가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보 로 정한다. 

Class Main {
	public int solution(int n, int[] a, int[] b){
    	String answer="";
        for(int i=0; i<n; i++) { //비기는 경우
        	if(a[i]==b[i]){
            answer += "D";
            } else if(a[i]==1 && b[i]==3) { //A가 이기는 3가지 경우 
            answer += "A";
            } else if(a[i]==2 && b[i]==1) {
            answer += "A";
            } else if(a[i]==3 && b[i]==2) {
            answer += "A";
            } else { //그 외에는 모두 B가 이기는것으로 간주한다. 
            answer += "B";
            }
        }
        return answer;
    }
    
    public static void main(String[] args){
    	Main T = new Main(); 
        Scanner kb = new Scanner(System.in);
        int n = kb.nextInt();
        int[] a = new int[n];
        int[] b = new int[n];
        for(int i=0; i<n, i++) {
        	a[i] = kb.nextInt();
        }
        for(int i=0; i<n, i++) {
        	b[i] = kb.nextInt();
        }
        System.out.println(T.solution(n, a, b));
    }
}