Tag
#java
20개의 글이 있습니다.
-
Java 배열(Array)과 Arrays 클래스 정리 (알고리즘 문제 풀이용)
알고리즘 문제를 풀 때 자주 사용하는 Java 배열과 Arrays 유틸리티 클래스의 주요 메서드를 정리했습니다. 1차원 배열 2차원 배열 기본 for문 향상된 for문 (for-each) 2차원 배열 순회 java.util.Arrays 클래스는 배열을 다루는 다양한 유틸리티
-
Java Math 클래스와 기타 유틸리티 정리 (알고리즘 문제 풀이용)
알고리즘 문제를 풀 때 자주 사용하는 Java Math 클래스와 기타 유틸리티의 주요 메서드를 정리했습니다. java.lang.Math 클래스는 수학 연산을 위한 static 메서드들을 제공합니다. 사용 예시 사용 예시 사용 예시 사용 예시 사용 예시 사용 예시 사용 예시
-
Java Stream API 정리 (알고리즘 문제 풀이용)
알고리즘 문제를 풀 때 자주 사용하는 Java Stream API의 주요 메서드를 정리했습니다. Stream이란? 컬렉션, 배열 등의 데이터를 함수형 프로그래밍 방식으로 처리할 수 있는 API (Java 8+) 사용 예시 사용 예시 사용 예시 사용 예시 사용 예시 사용 예시
-
Java String, StringBuilder 메서드 정리 (알고리즘 문제 풀이용)
알고리즘 문제를 풀 때 자주 사용하는 Java String과 StringBuilder 클래스의 주요 메서드를 정리했습니다. String은 불변(immutable) 객체입니다. 한 번 생성되면 값을 변경할 수 없습니다. 길이 문자 접근 사용 예시 사용 예시 indexOf 계열
-
Java 래퍼 클래스 메서드 정리 (알고리즘 문제 풀이용)
알고리즘 문제를 풀 때 자주 사용하는 Java 래퍼 클래스들의 주요 메서드를 정리했습니다. parseInt 계열 valueOf 계열 toString 계열 사용 예시 10진수 → 다른 진법 (String 반환) 다른 진법 → 10진수 사용 예시 사용 예시 사용 예시 사용 예시
-
Java 컬렉션 프레임워크 정리 (알고리즘 문제 풀이용)
알고리즘 문제를 풀 때 자주 사용하는 Java 컬렉션 프레임워크의 주요 클래스와 메서드를 정리했습니다. List는 순서가 있고 중복을 허용하는 컬렉션입니다. 동적 배열 기반의 리스트. 인덱스 접근이 빠릅니다 (O(1)). 생성자 주요 메서드 추가 삭제 조회 수정 크기 변환
-
[백준] 10942 팰린드롬? - JAVA
명우는 홍준이와 함께 팰린드롬 놀이를 해보려고 한다. 먼저, 홍준이는 자연수 N개를 칠판에 적는다. 그 다음, 명우에게 질문을 총 M번 한다. 각 질문은 두 정수 S와 E(1 ≤ S ≤ E ≤ N)로 나타낼 수 있으며, S번째 수부터 E번째 까지 수가 팰린드롬을 이루는지를
-
[백준] 4153 직각삼각형 - JAVA
기본기를 다지기 위해 쉬운 문제부터 다시 시작하고 있다. 이번 문제는 단순한 직각삼각형 문제 내가 처음 짠 위 코드에 개선사항이 세개가 있었는데 list 지역변수로 사용하기, 정렬보다 조건 검사를 먼저 하기, 튜플 사용하기이다. 개선한 코드는 다음과
-
[백준] 9663 N-Queen - JAVA
백트래킹 문제로 굉장히 유명하다는 N-Queen 문제이다. 다른 거는 어떻게 할지 감이 잡혔는데 대각선 검증을 어떻게 해야 할지가 고민이었는데 찾아보니 기울기 비교를 통해 검증하는 방법을 많이 사용한다고 하더라. 절대값을 사용해 순회를 돌면서 기울기가 같으면 서로 공격할 수
-
[백준] 1967 트리의 지름 - JAVA
[백준] 1967 트리의 지름 -
-
[백준] 1753 최단경로 - JAVA
각 출발 노드부터 각 노드까지의 최단 경로를 찾는 다익스트라 알고리즘
-
[백준] 13549 숨바꼭질 3 - JAVA
이전에 풀었던 순간이동 할 때 이동 시간이 1이었던 숨바꼭질 1에서 순간이동 시간이 0 으로만 바뀐 문제였다. 그래서 그냥 이동할 때마다 1 더해주던건 조건문으로 나눠서 순간이동 할때는 지금 시간 그대로 해주면 되는거 아니야? 라고 생각하고 풀었는데 그게 아니었다. 최단
-
JAVA의 Deque 클래스와 Queue 클래스의 차이
백준을 풀다가 Deque 클래스를 알게 되었다. BFS를 풀면서 Queue만 쓰던 나에게 새로운 고민을 안겨줬는데 Deque가 더 유연하니까 그냥 모든 경우에 Deque만 쓰면 되는 거 아니야? 라는 생각이었다. 그래서 찾아본 JAVA에서 Queue와 Deque의 차이를
-
[백준] 11660 구간 합 구하기 5 - JAVA
이번 문제는 dp, 누적합 문제이다. 이렇게 입력이 들어왔을 때 이런 누적합 배열로 저장해야 한다. [2][2]를 예시로 들면1 + 2 + 4 + 5 = 12가 되고[3][2] 는 1 + 2 + 4 + 5 + 7 + 8 = 27이 된다. 최종 코드는 아래와
-
[백준] 15663 N과 M(9) - JAVA
N과 M 시리즈로 중복되는 이번엔 기존에 출력됐던 배열을 출력 안되게 하는 문제이다. main 부분은 다른 문제와 같이 BufferedReader로 입력받고 초기화해준 후 정렬했다. 다음으로 dfs depth == M 즉 한 줄을 다 찾았으면 출력하고 종료한다. 그렇지 않으면
-
[백준] 1697 숨바꼭질 - JAVA
이번 문제는 오랜만에 1차원 배열을 이용한 그래프 순회 문제이다. 처음 이 문제를 봤을 때는 그래프 순회 문제가 아닌 수식 문제인줄 알았는데 수식보다 bfs로 푸는게 나을 것 같다. 문제가 짧은 만큼 알고리즘은 단순하다. queue를 활용한 bfs 탐색을 진행한다. 1.
-
[백준] 1012 유기농 배추 - JAVA
이번에도 상당히 전형적인 문제이다. 나는 dfs를 사용했고 특별히 어려운 부분은 없었다. 더 어려운 그래프 문제로 넘어가도
-
2606 바이러스 - JAVA
또 bfs 문제 이번에는 다른 블로그를 참고하지 않고 나만의 힘으로 풀어보기로 했다. 물론 아예 0부터 짜지는 않고 내가 이전에 했던 bfs 문제를 보면서 했다.. 아예 생짜로 짤 수있을 때까지 해보자,,,, 풀이는 전형적인 bfs 문제의 풀이이다. 그래도 이제 풀이 구조는
-
1260 DFS와 BFS - JAVA
기본적인 DFS, BFS 문제이다. 나는 알고리즘에 대한 지식이 없기 때문에 좀 고생했다.. 특징이 있는 부분 몇개만 소개하자면 간선 행렬을 표현할 때 1-based index를 사용해 index와 순회 돌 때의 숫자가 같게 만들었다. 재귀를 활용한 dfs queue를 사용한
-
2178 미로 탐색 - JAVA
이번에도 bfs문제이다. 일단은 탐색 문제들 먼저 풀어보고 있는데 많이 풀어보는게 답인 것 같다. 풀이는 위와 같다. 간단한 흐름은 배열을 숫자로 저장하고 그 배열을 bfs로 탐색하며 새로 방문하는 타일의 값을 이전 타일의 값+1로 더해줘 도착지의 최단 경로를 찾는