2096 내려가기 - 골드5 https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 작은 문제가 바로 보이는 문제! 그냥 배열을 내려가면서 가능한 최대값, 최솟값을 구하면 될 것 같다 마지막 줄에 도착했을 때 최댓값 3개중 가장 최대인 값/ 최솟값 3개 중 가장 최소인 값이 답 class Value { int min; int max; public Value(int min, int max) { this.min = min; this.max = max; } } publi..
전체 글
공부중인 학생입니다! 글에서 틀린 곳이 있으면 지적 부탁드립니다 블로그 이사 https://velog.io/@joohr1234백준이든 api를 만들든 나는 항상 코드가 잘 돌아가기만 하면 된다고 생각했다. 그래서 몇 중 for문이든 그냥 쓰고, 함수로 빼는 일도 잘 없었다. 하지만 팀원들은 내 코드를 보고 이해하기 어려워서 손도 못대겠다고 했다.. 😥😥😥 잘 짠 코드는 남이 알아보기 쉽게 작성한 코드라고 한다. 기능이 잘 돌아가는 것 외에 코드를 어떻게 깔끔하게, 남이 알아보기 쉽게 만들 수 있는지 고민을 해볼 단계가 된 것 같다. 이번에 우테코를 지원하였는데, 프리코스의 문제 요구사항 중 코드컨벤션 맞추기가 있었다. 이번에 Google Java Style Guide를 정리하며 자바 코드 컨벤션을 공부하고, 컨벤션에 맞추어 코드를 짜는 연습을 해보려고 한다. https://google.github.io/styleguide/ja..
https://techblog.woowahan.com/14072/ [모집] 우아한테크코스 2024 신입생을 모집합니다 | 우아한형제들 기술블로그 {{item.name}} 소프트웨어 장인을 꿈꾸는 모든 분들을 위한 우아한테크코스 2024 신입생 모집을 시작합니다! 우아한테크코스(이하, 우테코)가 5기를 지나 어느덧 신입생(6기)을 맞이할 시간이 다가왔 techblog.woowahan.com (우아한 기술 블로그 모집 글) 우아한테크코스 신입생 모집이 시작되었다! 이전부터 우테코는 잘하는 사람들만 가는 곳이라고 들었다. 그래서 항상 지원할 생각조차 못하고 있었는데, 입학설명회를 들어보니 우테코는 잘하는 사람이 아닌 열정적인 사람을 뽑는다는 걸 알게되었다! 그래서 나도 용기내서 이번에 지원하게 되었다. 모집 ..
11660 구간 합 구하기 5 - 실버1 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 그냥 지정된 범위의 합을 구하면 될 것 같아 이중 for문을 사용하여 더해봤다 -> 시간초과남ㅠ 아이디어가 떠오르지 않아서 구글링을 해봤다 이 문제는 누적합을 이용하는 문제였다! 애초에 값을 저장할 때 누적합을 저장했다 처음에는 행마다 따로 누적합을 구하는 방식을 사용함 xMin, yMin, xMax, yMax가 ..
배낭문제와 비슷한 류의 문제를 풀어봤는데, dp문제가 많이 약하다는 걸 알아냈다! 배열을 종이에 그리지 않으면 헷길리고, 문제를 제대로 풀 수 없는게 슬펐다. 그래서 손으로 그리지 않아도 머릿속으로 떠오르도록 많이 풀어 익숙해지려고 한다. 10844 쉬운 계단 수 - 실버1 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net dfs로도 풀릴 것 같다 -> 시간초과남 ㅜ dp로 풀어야겠다고 생각했지만 아이디어가 떠오르지 않아 구글링을 해봤다 풀이 설명 (dp가 진짜 참신한 것 같다. 이렇게 푸는 게 너무 신기하고 재밌다) 행은 1자리수 ~ N자리수 열은 어떤 자리..
백준에서 문제를 풀 때 String을 만들면 메모리 초과를 겪을 수 있다. 또한 버퍼에 넣지 않고 그냥 출력했다가 시간 초과를 겪는 경우도 있다. 이 때 필요한 자료형이 StringBuffer나 StringBuilder다. 사용해보면 알 수 있는데, 둘은 사용법도 비슷하고 기능도 똑같다. (이름도 좀 비슷해보인다) 하지만 둘은 차이점이 분명히 존재한다! 오늘 둘의 사용법을 간단히 정리해보고, 차이점도 알아보자! 자바에서 문자열을 다루는 법 자바에서는 문자열을 다루는 자료형 클래스로 String, StringBuffer, StringBuilder 3가지를 지원한다. String은 불변(immutable)하는 자료형이다 한 번 생성된 String객체는 할당된 메모리 공간이 변하지 않는다. "abc"와 같은 ..
1351 무한 수열 - 골드5 https://www.acmicpc.net/problem/1351 1351번: 무한 수열 첫째 줄에 3개의 정수 N, P, Q가 주어진다. www.acmicpc.net 일반적인 재귀방식은 시간이 너무 많이 들 것 같아 고민을 해봤다 재귀방식으로 필요한 값들을 일단 찾음 이미 구한 값들은 map으로 저장하여 다시 계산하지 않도록 함 class Main { private static Map map = new HashMap(); private static int p; private static int q; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(n..
이전 글(Union-Find 정리 글) https://fladi.tistory.com/348 [JAVA] Disjoint Set과 Union-Find 알고리즘(백준 1717 집합의 표현) 서론 백준 1717번 문제를 몇 시간동안 못풀어서 결국 구글링을 해봤는데, 이 문제는 Union-find알고리즘을 써야한다는 걸 알게되었다. Union-Find 알고리즘을 처음 접했을 땐 너무 참신해서 짜릿했다! fladi.tistory.com 이전에 Union-Find 알고리즘에 대해 공부했다 활용문제를 조금 더 풀고싶어 비슷한 문제를 풀어보려고 한다! 4195 친구 네트워크 - 골드2 https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진..
서론 백준 1717번 문제를 몇 시간동안 못풀어서 결국 구글링을 해봤는데, 이 문제는 Union-find알고리즘을 써야한다는 걸 알게되었다. Union-Find 알고리즘을 처음 접했을 땐 너무 참신해서 짜릿했다! 이 알고리즘을 정리해두면 나중에도 유용하게 쓰일 것 같아 글을 포스팅한다 Disjoint Set(서로소 집합)이란? Union-find 알고리즘은 Disjoint set을 표현할 때 사용된다 Disjoint는 "뿔뿔이 흩어지다"라는 뜻이다 Disjoint set은 공통원소가 없는 집합을 뜻한다 (백준 1717번 문제는 Disjoint Set이 주어진다) Union-Find 알고리즘이란? Disjoint Set(서로소 집합)을 효율적으로 표현하는 알고리즘이다 집합을 트리구조로 표현한다 각 값이 자..
2841 외계인의 기타 연주 - 실버1 https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (1 ≤ N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 www.acmicpc.net 스택문제이다 기타줄에 따른 프렛을 스택으로 저장하면 될 것 같다 나보다 큰 프렛이 스택의 peek에 저장되어있다면 계속 뺀 후 나를 추가시키면 될듯 풀이 class Main { public static void main(String[] args) throws Exception { BufferedReader br = n..