본문 바로가기
Algorithm/Weekly Solved

[위클리챌린지] 7주 - 입실 퇴실 - Java코드

https://programmers.co.kr/learn/courses/30/lessons/86048

 

코딩테스트 연습 - 7주차

사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는

programmers.co.kr

 

문제

 

 

풀이

package WEEKLY;

import java.util.ArrayList;

public class 입실퇴실 {
    public static int[] solution(int[] enter, int[] leave) {
        int len = enter.length;
    	int[] answer = new int[len];
    	ArrayList<String> list = new ArrayList<String>();
    	for(int i : enter)	list.add(Integer.toString(i));
    	int cnt,from,to,index;
    	for(int i=0;i<len;i++) {
    		cnt=0;from=i;to=i;
        	for(int j=0; enter[i]!=leave[j];j++) {
    			index = list.indexOf(Integer.toString(leave[j]));
    			to = index > to ? index : to;
    			if(to!=i && i>index) Math.min(from,index);
    			else if(to==i && i>index) Math.max(to, index);
    		}
        	System.out.println(from +" "+to);
    		answer[i] = to-from;
    	}
        
        return answer;
    }
    public static void main(String[] args) {
    	int[] enter = {1,4,2,3};
    	int[] leave = {2,1,3,4};
    	
    	int [] result = solution(enter, leave); //2,2,1,3
    	for(int i : result)
    		System.out.print(i+" ");
	}
}

 

문제를 푸는과정에서

해당 문제가 사이트에서

비공개 된 문제입니다.