전체 글
BOJ - 전구와 스위치 2138번 (JAVA)
❓ 문제 - 백준 전구와 스위치 2138번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/2138) 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 오른쪽으로 스위치를 켜면서 지나가면 첫 번째 전구와 마지막 전구만 두 번의 영향을 받으며, 나머지 전구들은 총 3번의 영향을 받게 된다. => 스위치를 켜면(* 범위 내에서) 현재위치-1, 현재위치, 현재위치+1의 영향을 주..
BOJ - 상어 초등학교 21608번 (JAVA)
❓ 문제 - 백준 상어 초등학교 21608번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/21608) 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 📝 문제해결법 1. 이 문제는 구현의 2가지 방법으로 풀었다. 1) 구현법 1 -> 메모리 21476KB, 시간 212ms Student 클래스에 각 학생의 번호와 그 학생이 좋아하는 학생들의 번호를 담은 배열을 저장하고 이것을 ArrayList로 관리한다. map이라는 int 2차원 배열로 자리 배치 정보를 담는..
BOJ - 효율적인 해킹 1325번 (JAVA)
❓ 문제 - 백준 효율적인 해킹 1325번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/1325) 특히 자바 ^^... 처음 A가 B를 신뢰하면 인접리스트를 통해 A 인덱스에 B의 값을 넣어준다. 그리고 cnt라는 배열을 만들어줘서 신뢰관계를 통해 얼마나 다른 컴퓨터를 해킹할 수 있을지 세어준다. 1~N개의 컴퓨터를 기준으로 BFS를 돌면서 얼마나 다른 컴퓨터를 해킹할 수 있을지 값을 변경해준다. BFS 함수 안에서는 방문처리를 위해 visited 배열을 활용했고, 큐를 통해서 해당 노드와 다른 노드가 연결(B를 통해 A를 방문 -> A가 B를 신뢰)된 것이므로 다른 노드에 해당하는 해킹 가능한 카운트를 +1 증가해준다. 마지막에 cnt 배열을 돌면서 가장 크게 해..
BOJ - 벽 부수고 이동하기 2206번 (JAVA)
❓ 문제 - 백준 벽 부수고 이동하기 2206번 - JAVA 풀이법 출처 (https://www.acmicpc.net/problem/2206) 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 📝 문제해결법 1. 이 문제는 BFS 알고리즘을 사용해서 풀었다. N, M의 값이 1000으로 큰 값이기 때문에 시간을 고려해서 풀어야 한다. -> BFS 벽은 한 번 부술 수 있으므로 벽을 부쉈을 때 방문체크 배열, 벽을 안 부쉈을 때 방문체크 배열을 따로 만들어야 한다. 해당 위치에 벽을 부순..