[PS] 백준3020 : 개똥벌레(Java)
CS/알고리즘2024. 10. 10. 16:41[PS] 백준3020 : 개똥벌레(Java)

문제https://www.acmicpc.net/problem/3020 풀이누적합을 활용한 풀이접근법N이 최대 200,000, H가 최대 500,000으로 들어오는 것을 조심해야 한다.단순히 O(NH)로 풀게 될 경우 시간초과가 발생하기 때문에 완전탐색 쪽으로는 생각하지 않았다. 그러면 어떻게 각 구간에 대해 효율적으로 탐색할 수 있을까? 처음에 떠올랐던 건 각 구간 별로 입력을 받을 때마다 갱신하면 되지 않을까였다.N개의 입력에서 갱신하는 방법에 대해 생각한 결과 각 구간 별로 누적합 원리를 활용해서 종유석 | 석순 각각에 대해 카운팅 해준 다음, 누적합을 구하는 방식으로 풀이했다.결과에 대해서는 i구간에 대해 종유석[i] + 석순[i]의 합이 개똥벌레가 부숴야하는 장애물의 개수이며, 최소값을 구한 후 ..

[PS] 백준1339 : 단어 수학(Java)
CS/알고리즘2024. 10. 7. 18:25[PS] 백준1339 : 단어 수학(Java)

문제https://www.acmicpc.net/problem/1339 풀이자료구조를 활용한 그리디 풀이첫번째 접근법 (오답)다음과 같은 우선순위를 통해서 알파벳에 대한 값을 메겼습니다.자리수가 높은 알파벳 우선같은 자리수라면 개수에 따라서반례2ABBB----wrong : 186ans : 188해당 접근으로는 바로 뒷자리수에 나오는 알파벳에 따라 잘못된 결과가 측정될 수 있었습니다. 두번째 접근법그렇다면 위와 같은 반례에 대해서 어떻게 풀이를 해야할까요?처음에는 단순히 바로 뒤에 나오는 각각의 자리수에 대해서 알파벳의 개수를 측정하고, 비교하려 했는데요. 이렇게 될 경우 로직이 굉장히 복잡해지고 어떻게 코드를 작성해야할지 모르겠더라구요.코드를 아예 지우고 다시 생각을 해본 결과 다음과 같은 로직을 생각할 ..

[PS] 백준13305 : 주유소(Java)
CS/알고리즘2024. 10. 5. 22:20[PS] 백준13305 : 주유소(Java)

문제https://www.acmicpc.net/problem/13305 풀이현재 주유소(i)와 다음 주유소(j)의 가격을 비교하여 현재 주유소가 저렴할 경우 다음 거리까지 주유.만약 다음 주유소가 저렴할 경우 현재 주유소에서 다음 주유소까지의 거리만큼만 주유.소스코드import java.io.*;import java.util.StringTokenizer;//BOJ_13305public class Main { static int cityCnt; static int[] dist, store; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new Input..

[Java] 객체 동등 비교 - equlas()
Language/Java2024. 10. 5. 20:20[Java] 객체 동등 비교 - equlas()

서론PS중에 좌표에 대한 객체를 생성하고, 동일 좌표 비교가 필요한 경우가 생겼다.아무생각없이 두 객체에 대한 equlas비교를 진행하고 “왜 안되지?”라고 생각했던 건에 대해서 정리해보는 글을 작성하기로 했다.import java.io.*;public class Main { static class Node { int x; int y; public Node(int x, int y) { this.x = x; this.y = y; } } public static void main(String[] args) throws Exception { Node a = new Node(0,0); ..

[회고] 인생 첫 해커톤, 시작부터 수상까지.
회고록2024. 9. 14. 20:29[회고] 인생 첫 해커톤, 시작부터 수상까지.

첫 해커톤 참여를 결정하다.삼성 청년 SW 아카데미(이하 SSAFY) 10기를 수료하고, 방황하던 중 한 외주 프로젝트의 백엔드 포지션을 제안받았습니다. 그 당시 일정이 비어서 참여하게 되었고, 백엔드 2, 프론트 2로 총 4명으로 팀이 구성되었죠.하지만 미팅 과정에서 의견이 맞지않아 무산되었고, 이대로 팀을 해산하기에도 아쉬웠기에 공모전과 해커톤을 알아보던 중 아래와 같은 좋은 기회를 발견하게 되었습니다.9.10 - 9.12 총 3일 간 진행되는 대회이며, 인원도 마침 최대 4명까지 가능했기에 서류 준비를 곧바로 시작하게 되었습니다.조마조마했던 예선 심사팀원 모두 보안에 대한 지식이 얕았기 때문에, 전문적인 보안 솔루션 개발보다는 지정과제로 "사이버범죄"에 포커스를 두고 아이디어를 기획했습니다. 아무래..

[인프런 퇴근길 밋업] SpringBoot with Josh Long 후기
세미나, 컨퍼런스, 강연2024. 9. 14. 07:09[인프런 퇴근길 밋업] SpringBoot with Josh Long 후기

나의 첫 컨퍼런스를 인프런과 함께!9월 9일, 인프런과 VMware Tanzu가 협업하여 진행한 특별한 밋업에 참석했던 후기입니다!https://www.inflearn.com/course/offline/josh-long-meetup [지금 무료] [인프런 X VMware Tanzu] Spring Boot 밋업 with Josh Long | 인프런 - 인프런인프런 | , 자바 챔피언, 스프링 개발자 애드버킷Josh Long과 함께하는 특별한 Spring Boot 밋업! 인프런 퇴근길 밋업 with Josh Long 안녕하세요, 인프런입니다.9월 9일, 인프런은 VMware Tanzu와 협업하여 특www.inflearn.com Intro이번 밋업은 스프링 프레임워크 관련 기술과 커뮤니티 활동을 주도하는 세계..

Language/Java2024. 9. 7. 03:55[Java] 인스턴스 변수를 사용하지 않는 메서드는 static을.

여태껏 클래스 내에서 메서드를 선언할 때 static 한정자에 대한 고민을 해본 적이 없었는데, 이번에 자바의 정석을 읽는 도중 좋은 내용을 건진 것 같아 포스팅하여 정리하고자 한다. public class Test { int x; int y; int add() { return x + y; } int add(int x, int y) { return x + y; }}class Practice { public static void main(String[] args) { Test t = new Test(); }}위와 같은 클래스가 있다고 가정하자.매개변수가 없는 add() 메서드의 경우 인스턴스 변수를..

[코드트리 조별과제] 4주차 학습 (정렬 알고리즘)
CS/알고리즘2024. 8. 10. 01:15[코드트리 조별과제] 4주차 학습 (정렬 알고리즘)

Intro코드트리 조별과제를 진행한지 저에겐 2주차가 되는 시점이네요!이번 주차에는 평소 해야지 해야지... 하고 생각만 하던 정렬 알고리즘에 대해 학습을 진행했습니다.보다시피 코드트리에는 정렬 알고리즘 학습 커리큘럼이 잘 구성이 되어있고, 이미지 및 영상 참고자료도 보기 편하게 제공이 되어 원활하게 학습할 수 있었습니다. 또한 각각의 알고리즘 동작 방식과 시간, 공간 복잡도를 중점으로 학습하였습니다. Bubble Sort(버블 정렬)거품 정렬은 가장 단순한 정렬 알고리즘입니다. 기본적인 아이디어는 간단합니다. 첫번째와 두번째 값을 비교하고, 두번째와 세번째 값을 비교하고, ... n-1번째와 n번째 값을 비교합니다. 이 과정에서 순서가 맞지 않은 값을 서로 교환해줍니다. 이런 절차를 정렬이 될 때 까지..

image