문제풀이/백준83 [JAVA] BOJ 백준 9019번 - DSLR 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/9019 2. 내가 푼 방법 최소한의 명령어가 반환되도록 풀어야 하므로 BFS 문제이다. 따라서 큐를 이용해 BFS 알고리즘을 구현했고, 각 명령에 따라 함수를 만들어 명령을 수행한 결과가 반환되도록 구현했다. public static String dfs (int from, int to) { String result = ""; Queue queue = new LinkedList(); queue.add(new Tuple(from, "")); boolean[] check = new boolean[MAX]; while (!queue.isEmpty()) { Tuple tuple = queue.p.. 2023. 6. 7. [JAVA] BOJ 백준 16234번 - 인구 이동 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/16234 2. 내가 푼 방법 처음에 같은 연합임을 확인하는 과정을 List 처럼 리스트 안에 Object 리스트를 선언한 변수에다가 저장시켜 두고 확인했다. 하지만 다른 분들과 실행 속도 측면에서 현저히 떨어져서 union find 알고리즘을 이용해 개선했다. bfs 함수에서 개방일을 카운팅해주고, isOpen 함수에서 연합이 생성된다면 true를 반환해 주는 코드를 작성했다. public static int bfs () { int dateCnt = 0; while (isOpen()) { dateCnt++; } return dateCnt; } 위에서 언급했던 union-find 알고리즘.. 2023. 6. 6. [JAVA] BOJ 백준 13460번 - 구슬 탈출 2 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/13460 2. 내가 푼 방법 최소 몇 번 만에 정답을 구할 수 있는지를 물어보고 있다. 따라서 BFS 알고리즘을 사용하는 방법을 떠올렸다. 하지만 빨간 구슬과 파란 구슬이 동시에 어느 위치에 존재하는지를 알아야 하기 때문에 보드 모양을 arr에 저장하고, 큐에 빨간 구슬과 파란 구슬을 저장시켜 기울임에 따라 이동시키면서 구멍에 빠지는가를 확인했다. 먼저 보드 모양을 이차원 배열 arr에 넣는 코드이다. 빨간 구슬과 파란 구슬은 위치만 알아두고 빈칸 상태로 변경해준다. N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextT.. 2023. 6. 5. [JAVA] BOJ 백준 1765번 - 닭싸움 팀 정하기 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/1765 2. 내가 푼 방법 일단 입력값은 연결리스트를 이용해 friend 관계와 enemy 관계를 나눠서 입력받았다. friend = new ArrayList[n+1]; enemy = new ArrayList[n+1]; for (int i = 1; i 2023. 6. 3. [JAVA] BOJ 백준 2295번 - 세 수의 합 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2295 2. 내가 푼 방법 다양한 시도를 해봤는데,, 일단 3중 for 문이 들어간 순간부터 시간 초과 혹은 메모리 초과가 발생한다. 그래서 x + y + z = k 식을 x + y = k - z 식으로 바꿔 풀었다. 기본적으로 x = 0; x--) { for (int y = x; y >= 0; y--) { if (search(cnt-1, sum, arr[x] - arr[y]) != -1) { result = arr[x]; break; } } if (result != 0) break; } bw.write(result+""); br.close(); bw.flush(); bw.close().. 2023. 5. 27. [JAVA] BOJ 백준 5214번 - 환승 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/5214 2. 내가 푼 방법 첨에 다른 분 풀이를 본 후 풀어서, 5일 뒤에 다시 시도해 푼 문제이다. 하이퍼튜브를 또 다른 정점으로 판단하여 해결하면 아주 쉬운 문제이다. 기존 정류장 정점은 1 ~ N까지, 하이퍼튜브 정점은 N+1 ~ N+M까지 설정하고, 역과 하이퍼튜브를 연결해 그래프를 만든다. int N = Integer.parseInt(st.nextToken()); int K = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st.nextToken()); List[] list = new ArrayList[N+M+1]; f.. 2023. 5. 23. 이전 1 ··· 8 9 10 11 12 13 14 다음