리스트 예시: 게시물이 존재할 경우 3건을 노출합니다.
-
프로그래머스
정렬: K번째 수
문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..
-
프로그래머스
해시: 완주하지 못한 선수
✅ 방법 1 : 해시를 이용하지 않고 작성 1) Arrays.sort() 를 이용하여 participant, completion 정렬 2) for loop 의 범위는 completion.length - prevent IndexOutOfBound 3) 정렬 했을때 participant 리스트에 완주하지 못한 사람이 마지막에 위치 한다면 온다면 loop 끝난 이후 return participant[i] 중간에 온다면 completion[i] == pariticpant[i+1] 이므로, return participant[i] 0 1 2 3 4 filipa josipa marina nikola vinko filipa josipa nikola vinko import java.util.*; class Solutio..
-
끄적여 '봄' 🌟
SQLD 도전기
정보처리 기사 1차를 합격한 후, 2차를 보려고 했으나 뭐가 이렇게 대학교 증명하는 절차가 어려운 건지..... 결국 배보다 배꼽이 더 커 포기하고 모두 응시 가능하고 1차에서 끝나는 SQLD 자격증에 도전하게 되었습니다. 공부 계획은 이분의 블로그를 참고해서 공부했습니다. https://devuna.tistory.com/11 [SQLD]SQL developer 시험개요/공부방법/35회 sqld 시험후기 정리 SQL developer 시험개요/공부방법/35회 sqld 시험후기 정리 제35회 SQL 자격시험이 지난 토요일 (2019년 11월 30일) 있었다. SQL 시험은 SQLD(SQL developer)와 SQLP(SQL Professional) 두 가지가 있는데, 나.. devuna.tistory.c..
-
🌱 Spring-boot
Lombok 사용시 주의사항
Lombok 이란? 자바 컴파일 시점에서 특정 annotation을 추가하여 코드의 가독성 및 유지보수에 도움을 주는 라이버리입니다. 웹 애플리케이션에서 VO 객체, getter setter 반복적으로 사용되는 코드를 수정이 편리하도록 자동 처리해 주는 역할을 합니다. 좋고 편리한 애노테이션을 많이 가지고 있지만 잘못 사용할 수 있기 때문에 잘 알고 사용해야 합니다. 🚫 @Data 애노테이션 : @Data = @ToString + @EqualAndHashCode + @Getter + @Setter + @RequiredArgsConstructor 의 조합입니다. 위의 중요한 애노테이션을 한 번에 사용하는 만큼 conflict 가 생기는 부분이 많아 실무에서는 사용을 추천하지 않는 롬복의 기능 중 하나입니다..
-
끄적여 '봄' 🌟
성장하는 삶 ✔️
최근에 드로잉앤드류님의 영상을 보다가 성과 없이 바쁘기만 한 당신을 위한 시간 관리 스킬 이란 책을 알게 됐다. 요즘 입에 달고 사는말 "나는 왜 맨날 바쁘지? " "어렵다" "시간이 없다" 그에 비해 성과가 크게 두드러지거나 확실하게 끝맺음을 한 것이 없는 옥에 티를 발견하게 됐다. 지금 당장 끝내야 하는 것에 중심을 두다 보니 우선순위가 밀리기도 하고 사실 지금 상황 자체가 '하지 않아도 곤란해지지 않는' 상황이다 보니 조금 나태해지고 나중을 기약하며 미루게 되는 습관은 어쩔 수가 없었다. 근데 이 책을 읽고 양심이 찔렸다. "당신이 당신에게 가치가 있는 일을 해내든 그렇지 않든, 시간은 계속해서 흐르고 당신은 계속 나이를 먹는다. 살면서 '원하는 것'을 실현하는 데 쓰는 시간을 늘리지 않으면 내 상..
-
🌈 Spring Framework
객체 지향 설계: SOLID 원칙
스프링 프레임워크를 이해하기 위해서는 객체 지향 설계 5원칙에 대한 이해가 있어야 한다. 왜냐하면 스프링 프레임워크가 객체 지향의 특성, 설계 원칙, 디자인 패턴 위에 구현돼 있기 때문이다. 객체 지향은 현실 세계를 모델링해야 하며 모델링은 통해 추상화해야 한다. 객체 지향 4 대 특성 (추상화, 상속, 다형성, 캡슐화)을 올바르게 녹여내 활용하면 SOLID 원칙은 결과로 나타나게 된다. SOLID는 객체 지향 설계 (Object Oriented Design)을 위한 다섯 가지 기본 원칙이며 " 응집도는 높이고 (High Cohesion), 결합도는 낮추는 (Loose Coupling) " 관점을 객체 지향 관점에서 적용한 것이다. ✔️ SRP (Single Responsibility Principle)..
-
🌈 Spring Framework
스프링 삼각형 : 1. 스프링을 이용하지 않은 DI/ IoC
스프링 프레임워크를 이해하기 위해서 POJO (Plain Old Java Object)를 기반으로 구성되어 있는 3대 프로그래밍 모델 : 의존성 주입 (DI / Dependency Injection) 혹은 제어의 역전 (IoC / Inversion of Control) + 관점 중심 프로그래밍 (AOP / Aspect Oriented Programming) +이식 가능한 서비스 추상화 (PSA/ Portable Service Abstraction)에 대한 이해가 필요합니다. 그중에 먼저 DI/IoC 에 대한 내용을 다뤄보려고 합니다. 일단 프로그래밍에서 의존성이란 무엇일까? 의존성이란 전체에 new()를 생성하게 되면 전체가 부분에 의존하게 된다. 그러며 의존 객체(전체)와 의존되는 객체 (부분) 사이에..
-
Operating System
운영체제에서 프로세스 작동 원리
프로세스의 작동 원리를 자세하게 알아보기 위해서는 전체적인 OS의 구조를 먼저 알아보겠습니다. 🌟 운영체제의 구조 운영체제는 사용자가 권한을 가지고 있는 USER MODE와 사용자가 권한을 가지고 있지 않은 KERNAL MODE로 나뉘어 있습니다. User 프로그램이 동작하기 위해 사용되는 메모리 공간 (code, data, heap, stack) 영역 응용 프로그램이 사용하는 공간 Shell 사용자와 컴퓨터 간의 커뮤니케이션을 중개하는 역할 (종류 : GUI / CLI) ex. Mac - terminal 응용 프로그램으로 운영체제의 기능과 서비스를 조작할수 있도록 인터페이스 제공 API/ 라이버리 응용 프로그램을 위한 인터페이스으로 응용 프로그램에 내장된 프로그래밍 코드 형태로 존재함. 많은 종류의 함..
-
Back to Basic 101
3주차 과제: 연산자
목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 사칙 연산 ( + , - , / , * , %) 비트 연산자 1 과 0 으로 참과 거짓의 결과 표현 관계 연산자 양쪽의 값이 어떤 관계를 갖는지 확인 논리 연산자 대상이 boolean 타입인 논리 값 instanceof (래퍼런스 타입 변수) instanceof (레퍼런스 데이터 타입) assignment(=) operator 값을 초기화 하여 할당 화살표 -> 연산자 람다 표현식 3항 연산자 (조건) ? (조건이 참일 경우 실행) : (조건이 거짓일때 실행) 연산자 우선순위 (1) 괄호 (2) !, ~, ++, -- (3) *, /, % (4) +, - (5) , >>> ... switch 연산자 if-else 과 같은 역할 / ..
-
Back to Basic 101
10주차 과제: 멀티쓰레드 프로그래밍
학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 ✔️ 개념 정리 🌟 Process (프로세스) : 운영체제로 부터 필요한 메모리(자원)를 할당받아 실행중인 프로그램 코드 / 데이터 / 스택 / 힙 메모리 영역으로 구성 🌟Thread (쓰레드) : 프로세스의 자원을 이용해 작업을 수행하는 프로세스를 처리하는 일꾼 같은 역할. (종류 : 싱글 쓰레드 / 멀티 쓰레드) 특징 : 쓰레드는 각자의 개별의 스택을 가지고 프로세스의 전역 메모리 공간을 공유하여 실행 된다. 장점 단점 - 사용자 응답성 향상 (병렬 처리, 동시 실행) - 자원 공유 효율 : 번거로운 프로세스간 자원공유를 위한 ipc작업이 없음 - 하나의 스레드에 문제가 ..