본문 바로가기

전체 글

for문 순열,XOR 연산자 숫자 1~3까지 중복되지 않게 뽑기 for (int i = 1; i < 4; i++) { for (int j = 1; j < 4; j++) { if (j != i) { for (int p = 1; p < 4; p++) { if (p != i && p != j) { System.out.println(i+" "+j+" "+p); } } } } } XOR연산자: ^ XOR:비트가 다르면 1,비트가 같으면 0을 반환하는 논리 연산자 더보기
HashSet의 객체 중복 제거 public class VisitLength { //방문길이 public static void main(String[] args) { String dirs = "ULURRDLLU"; System.out.println(solution(dirs)); } public static int solution(String dirs) { Coordinate coordinate = new Coordinate(0,0); HashSet hashSet = new HashSet(); for(int i=0; i=-5){ coordinate.update(-1,0); hashSet.add(new Coordinate(coordinate.getX()+0.5, coordinate.getY())); } break; case 'R': if(.. 더보기
객체 hashSet 중복제거 package Level2.October22; import java.util.HashSet; public class VisitLength { //방문길이 public static void main(String[] args) { String dirs = "ULURRDLLU"; System.out.println(solution(dirs)); } public static int solution(String dirs) { Coordinate coordinate = new Coordinate(0,0); HashSet hashSet = new HashSet(); for(int i=0; i=-5){ coordinate.update(-1,0); hashSet.add(new Coordinate(coordinate.get.. 더보기
객체 지향 설계 5원칙 SOLID 객체 지향 설계 5원칙 SOLID 1.SRP(단일 책임원칙):한 클래스는 하나의 책임만 가져야한다. 2.OCP(개방 폐쇄 원칙):소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야한다. 3.LSP(리스코프 치환 법칙):프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야한다. 4.ISP(인터페이스 분리법칙):특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다. 5.DIP(의존 역전 법칙):프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다. 더보기
LRU,동적계획법,메모이제이션 LRU(Least Recently Used) 가장 오랫동안 참조되지 않은 페이지를 교체하는 방식 동적계획법(Dynamic Programming) 큰 문제를 한 번에 해결하기 힘들 때 작은 여러 개의 문제로 나누어서 푸는 기법 Top-down:상위 문제를 해결하기 위해서 하위 문제를 재귀적으로 호출하여 하위 문제를 해결함으로써 상위 문제를 해결하는 방식 bottom-up:하위에서부터 문제를 해결해나가면서 먼저 계산했던 문제들의 값을 활용해서 상위 문제를 해결해나가는 방식 메모이제이션(Memoization) 기존의 정보를 저장함으로써 같은 입력값에 대해 함수가 한번만 실행하게 됨 static int fibo(int x) { if( x ==1 || x==2) return 1; return fibo(x-1) +.. 더보기
운영체제,GUI,CUI,드라이버,시스템 콜,커널 운영체제 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스 GUI 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태 CUI 그래픽이 아닌 명령어로 처리하는 인터페이스 드라이버 하드웨어를 제어하기 위한 소프트웨어 시스템 콜 운영체제가 커널에 접근하기 위한 인터페이스 커널 운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공하며 보안,메모리,프로세스 등 운영체제의 중추적인 역할 더보기
N+1 문제 해결 @Entity @Getter @NoArgsConstructor @AllArgsConstructor public class Request extends Timestamped { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id @Column(name = "REQUEST_ID") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "POST_ID") private Post post; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "USER_ID") private User user; @Enumerated(value = EnumType.S.. 더보기
failed to parse configuration class nested exception build 안 classes안 클래스의 이름이 겹쳐서 일어나는 오류로 build안 classes를 없애고 다시 빌드하면 정상실행됩니다. 더보기