Algorithms 33

백준 11899: 괄호 끼워넣기 (java)

알고리즘 스택 체감 난이도 ★ ★ ☆ ☆ ☆ 다시 풀 수 있는가? YES 1. isEmpty() 해설을 봤는데, 안봤으면 푸는데 굉장히 오래 걸렸을 것 같다. isEmpty() 했을 때 비어있지 않으면 닫히지 않은 괄호라는 것을 의미한다. if (c == '(') { stack.push(c); } else if (c == ')') { if (stack.isEmpty()) { ans++; } else { stack.pop(); } } 전체 코드 ▼ 더보기 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; public class BOJ11899 { public int solution() throws ..

Algorithms/Java 2023.12.28

백준 10814: 나이순 정렬 (java)

자바 문법을 잘 몰라서 Arrays.sort Override 구현에 어려움을 겪었다. 나는 2차원 배열 안에서 나이(int)와 이름(String)을 분리해서 Sorting 해야한다고 생각했다. (굉장히 복잡해짐) -> Map 자료구조까지 생각해봤지만.. 중복이 안돼서 탈락. 정렬 알고리즘을 알았으면 쉽게 풀었을 문제였던 것 같다. 알고리즘 정렬 체감 난이도 ★ ★ ★ ☆ ☆ 다시 풀 수 있는가? YES 1. Sorting Override Arrays.sort(arr, new Comparator() { @Override public int compare(String[] s1, String[] s2) { return Integer.parseInt(s1[0]) - Integer.parseInt(s2[0]); ..

Algorithms/Java 2023.12.28

백준 10773: 제로 (java)

스택을 사용한 문제를 풀어보고 싶어서 도전했다. 알고리즘 스택 체감 난이도 ★ ★ ☆ ☆ ☆ 다시 풀 수 있는가? YES 전체 코드 ▼ 더보기 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; public class BOJ10773 { public int solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int K = Integer.parseInt(br.readLine()); Stack stack = new Stack(); for (int i = 0; i < K;..

Algorithms/Java 2023.12.28

백준 3584: 가장 가까운 공통 조상 (java)

이 문제는 처음에 Union-Find랑 비슷해보여서 그래프로 접근했다가 망한 케이스다. 이후에는 여러 풀이 방법을 생각해봤는데 너무 복잡해져서 간단하게 구현할 수 있는 방법이 무엇일까 검색하다가 빵똥님의 풀이법을 참고하게 됐다. https://dhbang.tistory.com/34 그리고 찾아보니까 코테에서는 함수형 프로그래밍은 굳이 안해도 되는 것 같다. setParent()와 같은 함수는 그냥 바로 Main에 작성해도 될 것 같다. 알고리즘 트리: LCA 체감 난이도 ★ ★ ★ ★ ☆ 다시 풀 수 있는가? NO 1. isVisited 체크 isVisited로 방문한 노드를 체크하고, 다른 노드의 조상을 찾을 때 체크한 노드를 마주하면 break 한다. public void findCommonAnces..

Algorithms/Java 2023.12.28

백준 1717: 집합의 표현 (java)

2024년 새해 목표!! 1일1백준!! 근데 계절학기 들으면서 우주공강 때 할게 없어가지고.. 미리 시작해봤다. 언어는 나중에 백엔드를 지원할 생각이라 자바를 선택했다. 이번 1717번 문제는 자료구조 수업 때 한번 풀어봤던 문제인데, 그때는 전과 직후라 잘 모르는 상태에서 교수님 코드를 따라 치기만 했다. 이번에 다시 풀어보니까 훨씬 이해도 잘 되고 골드 문제임에도 금방 풀 수 있었다. 알고리즘 그래프: Union-Find 체감 난이도 ★ ★ ★ ☆ ☆ 다시 풀 수 있는가? NO 1. 재귀함수 x의 부모를 찾는 과정 중, 재귀함수를 써야한다는 생각을 못했다. 재귀함수로 (x == parent[x]) 할 때까지 타고타고 올라가야한다! public int findParent(int x) { if (x ==..

Algorithms/Java 2023.12.28

Python: 다른 디렉토리에 있는 파일 import 해서 실행시키는 법

디렉토리가 여러개일 때 사용하는 방법이다. 예를 들어 폴더 구조가 Atlas - Models - - - entityModels.py - Routes - - - GET - - - - - entityApi.py 이렇게 되어있었다고 치면, entityModels.py 를 entityApi.py 에서 import 하고 entityApi.py 를 실행시키고 싶을 때 가장 상위 폴더인 Atlas 에서 아래 명령어를 실행한다. python -m Routes.GET.entityApi.py

Algorithms/Python 2023.09.01

백준 4386: 별자리 만들기 (java)

https://www.acmicpc.net/problem/4386 4386번: 별자리 만들기 도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다. 별자리를 이루는 선은 서로 다른 두 별을 일 www.acmicpc.net 도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다. 별자리를 이루는 선은 서로 다른 두 별을 일직선으로 이은 형태이다. 모든 별들은 별자리 위의 선을 통해 서로 직/간접적으로 이어져 있어야 한다. 별들이 2차원 평면 위에 놓여 있다. 선을 하나 이을 때마다 두 별 사이의 거리만큼의 비용이 든다고 할 때, 별..

Algorithms/Java 2023.05.19

Java: 나도코딩의 자바 기본편 정리

객지프와 자료구조를 수강하면서 이해가 필요한 챕터들을 인프런 강의를 통해 추가로 수강 할 예정이다. 배열: 같은 자료형의 값 여러 개를 저장하는 연속된 공간 배열 선언 방법 1. String[ ] coffees = new String[4]; 2. String coffees[ ] = new String[4]; 크기 4개의 똑같은 String 데이터를 가지는 배열을 만듬 coffees[0] = "아메리카노"; coffees[1] = "카페모카"; coffees[2] = "카페라떼"; coffees[3] = "카푸치노"; 3. String[ ] coffees = new String[ ] { "아메리카노", "카페모카", "카페라떼", "카푸치노" }; 4. String [ ] coffees = { "아메리카노..

Algorithms/Java 2023.04.02