자바

자바

    백준 14500 / 테트로미노 / Brute Force / JAVA / 골드 5

    오랜만에 백준 문제를 풀었다. Brute Force 부터 유형별로 차근차근 풀어보려 한다. 이 문제는 찐 Brute Force 문제이다. Brute Force는 하나하나 직접 다 해보는 방법을 말한다. 일반적으로 이 방법은 시간과 공간을 초과하기 때문에 만능은 아니지만.. 구현 방법이 떠오르지 않을 때는 가장 먼저 시도해 보면 좋은 방법이기도 하다. 이 문제는 5개의 테트로미노를 뒤집고 돌려서 종이에 놓았을 때 차지하는 4칸의 합을 가능한 경우 모두 구해준 뒤 가장 큰 값을 출력하면 된다. 테트로미노는 5개이지만 실제로 우리가 고려해야 하는 테트로미노는 다음과 같이 총 19개가 된다. 그리고 이 19개 각각에 대해 해당 종이(M*N)를 전부 돌면서 발생할 수 있는 모든 경우를 다 탐색해 주어야 한다. 이..

    백준 3176 / LCA 알고리즘, DP, DFS / JAVA

    오늘 살펴볼 문제는 백준 3176번 '도로 네트워크' 라는 문제이다. https://www.acmicpc.net/problem/3176 3176번: 도로 네트워크 문제 N개의 도시와 그 도시를 연결하는 N-1개의 도로로 이루어진 도로 네트워크가 있다. 모든 도시의 쌍에는 그 도시를 연결하는 유일한 경로가 있고, 각 도로의 길이는 입력으로 주어진다. 총 K www.acmicpc.net 이 문제는 꽤 어렵다. https://solved.ac/ 라는 알고리즘 문제 난이도 측정 사이트에서는 이 문제를 플레티넘 4 레벨로 분류했다. 플레티넘 레벨은 상당수가 쉽게 해결책을 찾기 어려운 고난이도 문제이다.(나에게는) 이 문제도 그래서 사실 풀다가 다른 사람의 소스를 어느 정도 참고하였고, 천천히 상세하게 풀이를 정리..

    백준 1300 / 이분 탐색 (Binary Search) / JAVA

    오늘은 백준 1300번 문제를 풀어 보려고 한다. https://www.acmicpc.net/problem/1300 이 문제는 이분 탐색을 사용하여 푸는 문제이다. 이분 탐색을 알고, 약간의 아이디어만 생각해 낼 수 있으면 풀 수 있는 무난한 난이도의 문제인 것으로 보인다. 이분 탐색은 정렬이 되어 있는 데이터에 대해서 순차적으로 값을 찾는 방법이 아닌 탐색 범위를 절반씩 줄여 나가면서 찾아가는 탐색 알고리즘이다. 해당 범위의 중앙 값을 찾고 찾는 값과 비교하여, 찾는 값보다 중앙 값이 크면 두 범위 중 작은 범위에서 탐색을 이어나가고, 찾는 값보다 중앙 값이 작으면 반대로 큰 범위에서 탐색을 이어 나가는 방법이다. 순차 탐색은 최악의 경우 시간복잡도가 O(N)까지 나타난다. N = 1,000,000,0..

    백준 1865 / 벨만 포드 알고리즘(Bellman Ford) / JAVA

    오늘은 백준 1865번 웜홀 문제를 풀어보려고 한다. https://www.acmicpc.net/problem/1865 1865번: 웜홀 문제 때는 2020년, 백준이는 월드나라의 한 국민이다. 월드나라에는 N개의 지점이 있고 N개의 지점 사이에는 M개의 도로와 W개의 웜홀이 있다. (단 도로는 방향이 없으며 웜홀은 방향이 있다.) 웜홀은 시작 위치에서 도착 위치로 가는 하나의 경로인데, 특이하게도 도착을 하게 되면 시작을 하였을 때보다 시간이 뒤로 가게 된다. 웜홀 내에서는 시계가 거꾸로 간다고 생각하여도 좋다. 시간 여행을 매우 좋아하는 백준이는 한 가지 궁금증에 빠졌다. 한 지점에서 www.acmicpc.net 이 문제는 개인적으로 정말 많이 틀리고 나서 해결했던 문제이다. 그래서 더욱 꼼꼼하게 문..

    코딩 국비교육 과정에 대한 솔직한 후기

    (본문에 앞서, 저의 솔직하고 주관적인 후기임을 먼저 밝혀드립니다.) 작년 여름, 나는 6개월짜리 웹 개발 국비지원 과정을 수강하였다. 당시 나의 상황을 간단하게 설명하자면... 영국에서 교환학생을 돌아온 직후였고, 거기에 있는동안 너무 잘 놀고 와서 ㅋㅋ 코딩을 좀 제대로 해야 할 필요성을 느끼고 있던 시기였다. 인터넷 강의는 이전에도 몇 번 들어보았는데 강제성이 없어서 그런가 끝까지 완강을 못한 적이 더 많았던 것 같다. 뭔가 항상 시작을 하고 흐지부지 되는게 싫었고, 그렇다고 혼자서 무언가를 하자니 할줄 아는 것이 거의 없던 상황이어서 여러가지 고민이 많았던 시절이었다. 제대로 코딩을 배워보고 싶었다. 가장 먼저 알아본 건 패스트캠퍼스나 코드스테이츠, 코드스쿼드 등의 부트캠프였다. 나는 가을학기 휴..