반응형

전체 글 67

Line Sweeping(라인 스위핑)

Line Sweeping2차원 공간에서 여러 개의 점, 선, 사각형 등의 기하학적 객체를 효율적으로 처리하기 위한 알고리즘 패턴주어진 데이터를 특정한 방향으로 스위핑 처리하여 유의미한 이벤트를 기록하고 계산개념이벤트 기반 처리주어진 기하학적 문제를 해결하기 위해 특정한 이벤트(사건)를 발생시키고 처리하는 방식선분 교차 문제에서는 선분의 시작점과 끝점을 이벤트로 등록정렬과 진행 방향이벤트들을 x좌표 기준으로 정렬한 후 왼쪽에서 오른쪽으로 진행하면서 이벤트를 하나씩 처리동적 상태 유지(Active Set)특정 시점에서 유효한 객체(선분, 점 등)를 동적으로 유지하면서 연산 수행선분 교차 문제에서는 현재 활성화된 선분들을 유지하며 교차 여부 판별예시선분 교차 판별 : 여러 개의 선분들이 주어졌을 때, 교차하는..

[프로그래머스, JAVA] 겹치는 선분의 길이

https://school.programmers.co.kr/learn/courses/30/lessons/120876 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  class Solution { public int solution(int[][] lines) { int answer = 0; int[] arr = new int[202]; //배열을 만들어 두고 그 점이 등장하면 방을 1 증가 for(int i=0; i 1){ answer++; } } return answer; ..

카테고리 없음 2025.03.17

[프로그래머스, JAVA] 평행

https://school.programmers.co.kr/learn/courses/30/lessons/120875# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr class Solution { public int solution(int[][] dots) { int answer = 0; //두 직선이 평행이 되는 경우 //x가 같고 y가 다른 경우 //y가 같고 x가 다른 경우 //dots[0] : x좌표 //dots[1] : y좌표 int x1 = dots[0][0], y1 = dots[0][1]; ..

카테고리 없음 2025.03.17

[프로그래머스, JAVA] 옹알이 (1)

https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제에서, test case 2번의 wyeoo가 힌트가 된다. 단순히 replace를 공백이 아닌 빈 문자열("")로만 해 주게 되면, 다음과 같은 순서로 변경되어 발음할 수 있는 문자 취급이 되기 때문이다. 1. wyeoo에서의 ye제거 -> woo2. woo에서의 woo 제거 -> ""3. 발음할 수 있게 됨 그러므로, 바로 공백이 아닌, 다른 문자로 변경한 후 그 문자만큼을 제거하여 발음할 수 있는지 아닌지를 판별해 주어야 한다.cl..

[프로그래머스, JAVA] 문자열 밀기

https://school.programmers.co.kr/learn/courses/30/lessons/120921# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  import java.util.*;class Solution { public int solution(String A, String B) { int answer = -1; //A : 밀어야 할 문자 //B : 정답 문자 String answerStr = A; String a = A; String lastChar = ""; for(int i=0; i

Sliding Window(슬라이딩 윈도우)

Sliding Window(슬라이딩 윈도우)배열이나 리스트에서 일정한 크기의 윈도우(구간)을 유지하면서, 매번 전체를 계산하지 않고 일부만 갱신하는 방식필요 이유배열에서 연속된 부분을 탐색하는 경우, 모든 경우에 대해 직접 탐색(완전탐색, Brute Force)는 비효율적이기 때문불필요한 연산을 줄이기 위함유형고정 크기(Fixed Size) 슬라이딩 윈도우윈도우 크기 K가 일정한 경우 : 연속된 K개의 합 구하기가변 크기(Variable Size) 슬라이딩 윈도우특정 조건을 만족할 때까지 윈도우 크기를 조절하는 방식 : 연속된 숫자의 합이 특정 값 이하가 될 때 가장 긴 길이 찾기Brute Force vs Sliding WindowBrute Force길이가 N인 배열에서 크기가 K인 연속된 부분 배열의 ..

[JAVA] for loop과 Enhanced for loop(향상된 for문) 사용법 완벽 정리

for loop반복 작업을 수행할 때 사용하는 제어문주어진 조건이 참인 동안 특정 코드 블록을 반복 실행하는 데 사용됨반복 횟수나 반복할 조건이 명확할 때 유용기본 문법for (초기식; 조건식; 증감식){ //반복할 코드}초기식 : 반복문이 시작될 때 한 번만 실행되는 부분. 반복문을 위한 변수 설정조건식 : 반복문이 실행되는 동안 계속해서 평가되는 조건. 조건이 참(true)일 때만 반복문이 실행됨증감식 : 반복문이 한 번 실행된 후, 변수의 값이 어떻게 변화할지를 정의향상된 for문(Enhanced for Loop)JAVA 5부터 추가된 반복문배열 또는 컬랙션을 반복(iterate)할 때 사용됨기존의 for문보다 더 간결하고 직관적으로 사용할 수 있음인덱스를 사용하지 않고도 배열이나 컬렉션의 요..

JAVA 2025.03.05

[JAVA] 원격 함수 호출(RMI, Remote Method Invocation) 완벽 정리

분산 컴퓨팅네트워크에서 서로 다른 시스템 간에 응용프로그램을 분산해서 처리하는 환경하나의 컴퓨터에 존재하는 Application이나 프로세스에서 스스로 처리하거나 수행하기 어려운 작업을 다중 프로세서나 컴퓨터에 분산시키는 것분산 컴퓨팅을 적용한 Application을 Distibuted Application이라고 함Distributed Object(분산 객체)여러 컴퓨터나 프로세서에서 실행되는 객체들이 서로 통신할 수 있도록 만드는 기술하나의 컴퓨터에서 실행되는 객체가 다른 컴퓨터나 프로세스에서 실행 중인 객체와 상호작용할 수 있는 기능 제공Remote Method Invocation(RMI)Java-to-Java : Java 애플리케이션 간에 원격 객체 호출을 할 수 있도록 도와주는 기술한 컴퓨터에서 ..

JAVA 2025.02.13

[JAVA] 리플렉션(Reflection) 완벽 가이드 : 개념, 사용 이유, 활용, 단점

Reflection코드가 실행 중에 자기 자신을 들여다보고 조작할 수 있는 기능클래스, 메소드, 필드 등의 정보를 동적으로 가져오고 수정할 수 있음사용 이유런타임에 클래스 정보 조회Class 객체를 사용해 이름, 필드, 메소드, 생성자 등을 가져올 수 있음동적으로 객체 생성 및 메소드 실행컴파일 시점에 어떤 클래스를 사용할지 모르더라도, 문자열로 클래스 이름을 받아 객체를 만들고 메소드를 호출할 수 있음JAVA 프레임워크와 라이브러리에 필수적Spring, Hibernate 같은 프레임워크는 내부적으로 리플렉션을 활용하여 객체를 주입하거나, 필드 값을 동적으로 생성활용되는 곳Spring 프레임워크 -> 의존성 주입(DI)에서 객체를 동적으로 생성JUnit -> 테스트 메소드를 런타임에 실행ORM(Hiber..

JAVA 2025.02.13
반응형