23-05-30

more·2023년 5월 30일
0

문제

  1. 과제를 github에 올리려다가 stage에 이상한 것들이 있어서 지우고자 git clean -fd를 시도함. 그러자 과제 파일들이 전부 날라갔다....

시도

  1. 미칠 듯한 감정을 느끼고 계속 local history를 확인하면서 intelliJ에서 복구를 시도
    1-1. local history에 아예 기록 자체가 남아있지 않았다.
    1-2. 엄청나게 많은 시간의 구글링 시도

해결

  1. stack overflow에 다행히도 intelliJ에서 git clean을 했을 때 복구하는 방법이 있었다.
    1-1. 사라진 파일들과 같은 이름으로 파일을 생성
    1-2. 해당 파일의 local history를 확인
    1-3. history를 예전 시간대로 restore

알게 된 점

  1. git clean은 복구가 안 될 줄 알았는데 다행히도 복구가 되는구나...
    1-1. stackoverflow 만세
    1-2. IntelliJ 만세
    1-3. git을 제대로 알고 확인 또 확인하자

오늘 푼 문제

백준 7785 : 회사에 있는 사람 (Java)

import java.io.*;
import java.util.*;


public class Main {

    public static void main(String[] args) throws IOException {
    	// Scanner가 오래 걸려서 BufferedReader 사용
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        // sout이 오래 걸려서 BufferedWriter 사용
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        // 띄어쓰기가 포함된 한 라인 받기 위해 StringTokenizer 사용
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        // 순서가 보장된 Map을 사용하기 위해 LinkedHashMap 사용
        Map<String, String> res = new LinkedHashMap<>();

		// 받은 라인을 띄어쓰기 별로 저장해서 LinkedHashMap에 저장
        // 저장하기 전에 같은 key 값이 있고 value가 leave면 기존에 저장된 값 삭제후 continue
        for(int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine(), " ");
            String key = st.nextToken();
            String value = st.nextToken();
            if (res.containsKey(key) && value.equals("leave")) {
                res.remove(key);
                continue;
            }
            // 기존에 enter한 사람이 없으면 res에 저장
            res.put(key, value);
        }

		// 정렬을 위해 TreeMap에 기존 값 할당
        //	descendingMap()을 사용하여 역순으로
        Map<String, String> tmp = new TreeMap<>(res).descendingMap();
        for (String sKey : tmp.keySet()) {
            bw.write(sKey + "\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }
}

0개의 댓글