자바4 [JAVA] 백준 자바 서식, 제출방법 처음으로 백준에서 자바로 문제를 풀 때, 코드가 동작하기도 전에 컴파일 에러가 떠서 꽤나 골머리를 앓았던 기억이 난다. 따로 서식이나 폼이 있다는 사실을 몰랐던.. 그런 시절도 있었지... 방법은 쉽다. 그냥 간단하게 메인 클래스의 이름을 Main으로 해주면 된다. public class Main{ public static void main(String[] args){ System.out.println("Hello world"); } } 이런 식으로! 우리 컴퓨터에서는 자바가 파일명과 같은 class로 컴파일되고 그 클래스를 실행하는 것이기 때문에 메인 클래스명이 파일명과 같아야 하지만, 백준의 채점에서는 그 클래스의 이름을 Main으로 정해준 듯. 2021. 10. 13. BFS : 너비 우선 탐색 (Java) 너비 우선 탐색 또한 그래프 탐색 이론이다. 깊이 우선 탐색과의 차이점은, BFS는 현재 노드 기준 가장 가까운 노드들을 모두 거치고 지나간다. 특징으로는 1번, 재귀적으로 작동하지 않는다. 2번, 노드에 방문했던 사실을 체크해줘야 한다. 3번, 동일 깊이의 노드들을 선입선출을 기반으로 하는 큐에 넣어두었다가 사용한다. 이런 순서로! 엄밀히 말하면 같은 깊이의 노드들을 한 번에 처리하는 것은 아니지만. 똑같이 인접 행렬로 구현한다. 알고리즘을 정렬해보면: 1. 시작 노드의 번호를 큐에 넣는다. 2. 큐에 있는 노드를 꺼낸다. 3. 해당 노드와 연결되어 있는 노드들 중에 방문하지 않은 노드들을 큐에 넣는다. 4. 큐가 비어있지 않으면 2~4번을 반복한다. 코드로 한 번 구현해보자. import java.u.. 2021. 10. 7. DFS - 깊이 우선 탐색 (Java) 10월 9일 예정인 ICPC 학교 예선을 대회 약 한 달 전인 9월 초중반 즈음에 나가기로 했다... 알고리즘의 알 자도 모르는 나였지만 일단 갖다 박아보는거지!! 라는 마인드로 똑같은 마인드의 팀원들을 구해서 준비를 했다 ㅎㅎㅎ 공부할수록 어렵고 복잡함을 느끼지만 오기도 생기고 재미도 붙어서 올해는 경험삼아 도전해보고, 내년에 제대로 공부하고 해보고 싶어졌다. 공부한 것을 정리하기 위해! 포스팅을 한다. DFS(깊이 우선 탐색)은 가중치가 없는 그래프에서의 경로를 찾는 방법이다. 왜 깊이 우선이냐면 한 경로를 찍고 끝까지 내려갔다가 돌아오기 때문! 그래서 재귀적으로 움직이는 것이 특징이다. 장점은 구현하기 쉽다! 그리고 저장 공간을 적게 먹고, 목표 노드가 깊게 있다면 그를 빨리 구할 수 있다. 반대로.. 2021. 10. 7. [Java] 로봇 문제 어쩌다보니 자바로 지역 icpc를 나가게 되어 급하게 공부하고 있다. 중간점검차 기출문제를 한 번 풀어보게 되었는데, 생각보다 자바를 엄청나게 잘 다뤄야 할 필요는 없었던 듯. 이게 문제였다. 이런 문제는 진짜 난생 처음 겪어봐서 어떻게 풀어야 할지 구상하는 데만 한참이 걸렸는데, 일단 풀기 위한 키로 보였던 요소들은 1. x나 y좌표가 nxn에서 n보다 크면 무조건 -1 반환. 2. 현재 보고 있는 방향을 변수에 저장. 3. 마지막으로 움직인 방향을 변수에 저장. 그러면 북쪽으로 갈 때는 y값을 더해주고 남쪽으로 가면 빼주고, 같은 방법으로 x를 처리해주면 될 것 같았다. 문제는 방향. 좌로 돌기, 우로 돌기가 있었는데 그것을 위해 2,3번을 고안해냈던 것. 그런데 두 값을 합쳐서, 마지막으로 본 방향.. 2021. 9. 19. 이전 1 다음