본문 바로가기

java

(10)
슬라이딩 윈도우 / 투 포인터 (JAVA) 부분 배열을 활용하여 선형 공간(1차원 배열)을 2회 이상 반복적으로 탐색해야 할 경우의 O(N^2) 이상의 시간 복잡도를 O(N)으로 줄일 수 있다. 윈도우가 이동하면서 윈도우 내의 데이터를 이용하여 문제를 해결하는 알고리즘. 슬라이딩 윈도우 : 부분 배열의 길이가 고정적 배열이 고정적이기 때문에 포인터가 하나만 있어도 된다. 기존 구간에서 빠지게 되는 가장 왼쪽칸의 값을 삭제하고 새 구간에 포함되는 값을 추가해주면 된다. 우선순위 큐를 활용하기도 한다. 적용 문제 : https://tech-heng.tistory.com/93 투포인터 : 부분 배열의 길이가 가변적 모든 배열의 값들을 필연적으로 탐색하여 특정 조건을 일치시키는 개수 혹은 최소,최대 값 찾는 문제에서 연속되고 가변적인 부분 배열을 활용 ..
[PGS] 프로그래머스 - N개의 최소공배수 (JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최대공약수, 최소공배수 로직을 알고 있으면 금방 풀 수 있는 문제이다. 두개의 수로 차례대로 최소공배수를 구해나가면 마지막 수가 n개 수의 최소공배수가 된다. import java.util.*; class Solution { public int solution(int[] arr) { int answer = arr[0]; for(int i=1; i
[Java] substring (문자열 자르기) substring 1. 인자값 1개 : 인덱스 이후 값을 가져온다. String str = "가나다라마바사"; str.substring(5); //5번째 인덱스부터 자른다. //바사 2. 인자값 2개 : substring(beginIndex, endIndex) - 시작인덱스부터 끝 인덱스 전 값을 가져온다. String str = "abcdefghijk"; str.substring(0,4); //index 0부터 3까지 //abcd
[Java] BigInteger(큰 정수) 타입 범위 메모리 크기 int -2,147,483,648 ~ 2,147,483,647 4byte long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 8byte BigInteger은 문자열 형태로 이루어져 있어 어떠한 숫자든지 담을 수 있다.(길이 제한 없음) import java.math.BigInteger; BigInteger bigNumber = new BigInteger("10000"); 인자값으로 문자열을 넘겨주어야 한다. BigInteger 연산 문자열이기에 연산이 불가능하다. BigInteger 클래스 내부에 있는 메서드를 활용해야 한다. System.out.println("덧셈(+) :" +bigNumber1.add(bigNumber2)..
[SWEA] 1226. 미로1 (JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14vXUqAGMCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [문제] 아래 그림과 같은 미로가 있다. 16*16 행렬의 형태로 만들어진 미로에서 흰색 바탕은 길, 노란색 바탕은 벽을 나타낸다. 가장 좌상단에 있는 칸을 (0, 0)의 기준으로 하여, 가로방향을 x 방향, 세로방향을 y 방향이라고 할 때, 미로의 시작점은 (1, 1)이고 도착점은 (13, 13)이다. 주어진 미로의 출발점으로부터 도착지점까지 갈 수 있는 길이 있는지 판단하는 프로그램을 작성하라...
[SWEA] 1238. Contact (JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15B1cKAKwCFAYD&categoryId=AV15B1cKAKwCFAYD&categoryType=CODE&problemTitle=1238&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [문제] 비상연락망과 연락을 시작하는 당번에 대한 정보가 주어질 때, 가장 나중에 연락을 받게 되는 사람 중 번호가 가장 큰 사람을 구하는 함수..
[JAVA] 객체지향(3) Abstract Class(추상 클래스) 자식 클래스에서 반드시 부모 클래스의 메서드를 재정의 해서 사용하기 때문에 부모 클래스에서의 메서드 구현이 무의미한 상황 -> 함수에 대한 정의는 있어야 하는데 몸통은 필요 없을 경우 abstract 사용. abstract 메서드는 abstract 클래스에만 있을 수 있다. 부모 클래스에서 해당 메서드의 선언부만 남기고 구현부는 세미콜론(;)으로 대체 abstract 키워드를 메서드 선언부에 추가 (구현부가 없다는 의미) abstract 키워드를 클래스 선언부에 추가 (객체를 생성할 수 없는 클래스라는 의미) 추상 클래스의 특징 - abstract 클래스는 상속 전용 클래스이다. - 객체를 생성할 수는 없지만 자식 클래스를 참조할 수는 있다. - 부모 클래스에서 ..
[JAVA] 객체지향 (2) Inheritance(상속) : 기존 클래스의 필드, 메서드를 자식 클래스에서 재사용하기 위한 것 - 생성자, 초기화 블록(static, instance)는 상속하지 않는다. 유지 보수에 유리 extends 키워드를 사용 · 컴파일 시점 extends가 없으면 컴파일러가 extends Object 붙여서 실행 - Object Class 는 모든 Class의 부모 클래스 상속 (is a 관계) : 자식 클래스 is a 부모 클래스 - 위 첨부 사진에서 SpiderMan is a Person. 자바는 단일 상속만 지원 ※ 다중 상속 효과를 원한다면 1) interface 또는 2) 포함 관계(has a)로 구현 가능 포함 has a 관계 public class SpiderMan2 extends Person{..