Algorithm_Java 19

Java에선 String 비교시 equals 사용

String s = "asdf"처럼 문자열 리터럴을 사용하는 경우 자바 컴파일러는 String Constant Pool이라는 영역에 같은 값의 문자열을 공유. 따라서 리터럴로 String s1 = "a"; String s2 = "a"로 선언할 경우 문자열이 같으므로 주소가 같음. 반면 String s = new String("asdf")는 새로운 객체를 힙 영역에 생성하므로 주소가 아예 다름 == 는 두 연산자의 주소(참조) 값이 같은지 확인. 따라서 내용물이 같더라도 주소가 다르면 같지않다고 표현s1.equals(s2)가 내용물 비교 어레이 사이즈는 array.length로 접근

Algorithm_Java/ETC 2025.09.11

PCCP 기출문제 : 수레 움직이기

40분 걸렸다. 백트래킹을 이용한 브루트 포스 문제였다. 수레를 두 개 움직여야하기 때문에 동시에 고려해주었다. c++과 동일하게 선언과 동시에 초기화는 static int[] dx = {0,1,0,-1};과 같이 한다.[]배열의 길이는 length로 접근한다.나중에 변수를 무조건 할당하게 되더라도, if문 안에 할당문이 있다면 함수의 인자로 들어가려면 변수의 initialize를 해줘야 한다. 백트래킹 문제는 느낌으로 이게 시간제한을 오바하지 않겠다 라고 생각해야해서 좀 모호한 것 같다.import java.util.*;import java.io.*;//방문했던 칸 x, 벽 x, 격자 밖 x, 도착칸에 위치하면 움직이지 않고 고정//동시에 두 수레 같은 칸으로 이동 x//자리를 바꾸며 이동 x//퍼즐을..

백준 1753 : 최단경로

대놓고 다익스트라 문젠데 30분 걸렸다. 구현 자체가 너무 오래 걸린다. 자바가 뭔가 할게 많은 것 같다..import java.io.*;import java.sql.Array;import java.util.*;public class Main { static int V,E,K;//1 450만정도 //노드와 노드 사이 간선 여러개 존재 가능 static List[] edges; static class Road{ int dst; int weight; Road(int dst, int weight){ this.dst = dst; this.weight = weight; } } static cl..

백준 1107 : 리모컨

사실 bfs로 풀면 비효율적인데 자바에 익숙해질 겸 비효율적으로 풀었다. 덕분에 시간 겁나 박았다. 반례를 너무 못찾은 것 같다.import java.io.*;import java.util.*;public class Main { //N { @Override public int compare(Channel a, Channel b) { return a.pressed - b.pressed; } } static void find_num(int len, int num) { if(len > 0 && Math.abs(N - similar_num) > Math.abs(N - num)) { similar_num = ..

백준 11000 : 강의실 배정

배울게 많은 문제였다. 예전에 한번 풀다가 멈췄었는데, 다시 풀려니 문법을 아직 잘 몰라 막혔다.시작 시간이 낮은 순서대로 채워야 최대한 채울 수 있음1) 자바에는 pair가 없다. 따로 클래스를 만들어줘야함2) Arrays.sort() 메서드로 sort의 설정이 가능하다. 람다함수의 형식은(l1,l2)->{}의 형식. int로 리턴한다.3) PriorityQueue에서 기본은 오름차순 정렬. top()대신 peek()를 쓰고, push대신 offer, pop 대신 poll을 사용한다.4) br,bw을 적극적으로 사용하자. 사용 후엔 무조건 close. flush로 출력5) priority queue comp 설정은 Comparator implement한 class 만들어서@Overridepublic i..