분류 전체보기
-
[프로그래머스/Level 1] 개인정보 수집 유효기간알고리즘 문제풀이/프로그래머스 2023. 4. 10. 20:56
https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 오늘 날짜와 각 약관의 유효기간을 일(day) 단위로 변환 후 비교하면 간단하게 해결 가능하다. 주의할 점은 유효기간 변환 후 -1을 해줘야한다. #include #include #include #include #include #include using namespace std; map m; vector solution(string today, vector terms, vector ..
-
열등비교와 우등비교일상/사색의 공간 2022. 10. 30. 18:12
인간은 누구나 강점과 약점을 가지고 있다. 그러나 인간은 자신이 가진 강점보다 약점에 집중하며 자신의 약점 때문에 본인이 특정한 일을 할 수 없다고 핑계거리를 찾는 경향이 있다. 이처럼 남과 나를 비교하며 남보다 내가 못할 수 밖에 없는 합리화의 변명을 지속적으로 찾아내는 태도를 열등비교라고 한다. 우리는 이러한 열등비교를 그만두고 자신만이 가지고 있는 강점을 극대화하려는 태도가 필요하다. 나의 삶을 원하는 방향으로 끌고 가기 위해서는 우등비교를 할 필요가 있다. 우등비교란 열등비교와는 반대로 자신이 그 일을 나보다 잘할 수 밖에 없는 이유를 찾는 태도다. 하고자 하는 자는 방법을 찾고, 하기 싫어하는 자는 핑계를 찾는다는 것을 명심하자.
-
[Java] JVM 메모리 구조(Runtime Data Area) 정리프로그래밍/JAVA 2022. 10. 17. 21:29
개요 자바 개발자로서 JVM 런타임 데이터 영역에 대한 이해는 매우 중요하다. 자바로 개발을 하면서 가장 무서운 에러중 하나는 OOM(OutOfMemoryError)이다. 이것은 JVM의 메모리 영역과 관련이 있기 때문에 JVM 내부의 메모리 영역이 어떻게 동작하는지에 대한 이해가 필요하다. 런타임 데이터 영역의 종류 이러한 6가지 JVM 런타임 데이터 영역은 두 개의 그룹으로 분류될 수 있다. PC 레지스터, JVM 스택, 네이티브 메서드 스택은 스레드마다 독립적으로 할당된다. 이러한 영역들은 스레드가 생성될 때 같이 초기화되고, 스레드가 종료될 때 같이 회수된다. 힙 영역, 메서드 영역, 런타임 컨스탄트 풀은 공유자원이다. JVM이 실행될 때 초기화되고, 종료될 때 같이 회수된다. PC(Program..
-
[Java] 자바 스트림(Stream) API 내부 동작 알아보기프로그래밍/JAVA 2022. 10. 14. 10:59
자바 스트림 작업은 모두 LinkedList 구조를 통해 내부적으로 저장되고 내부 저장 구조에서 각 단계에는 다음 구조를 따르는 비트맵이 할당된다. (Stream Flags) SIZED : 스트림의 크기를 아는가? DISTINCT : 스트림의 요소가 전부 중복이 없는가? SORTED : 요소가 원래 순서대로 정렬되었는가? ORDERED : 요소가 스트림화 되는 순서가 컬렉션에서도 유지되는가? 위와 같은 비트맵 정보를 통해 자바는 스트림 최적화를 실행하기 때문에 이는 매우 중요하다. 각각의 작업은 다른 비트맵을 지우고, 설정하고, 유지하게 된다. 예를들어, 스트림의 map 메서드같은 경우 데이터가 변경될 수 있으므로 DISTINCT와 SORTED 비트맵을 지운다. 그러나 스트림의 크기는 수정되지 않으므로 ..
-
[Java] 자바로 인접행렬, 인접리스트 구현하기프로그래밍/JAVA 2022. 10. 13. 11:57
작성 코드 public class Main { static int n, m; static int[][] arr; static ArrayList[] list; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); n = Integer.parseInt(st.nextToken()); m = Integer.parseInt(st.nextToken()); /* 배열 & 리스트 초기화 */ arr = new int[n + 1][n +..
-
[Java/Spring] 롬복(Lombok)이란? 활용법 정리프로그래밍/JAVA 2022. 10. 12. 22:30
개요 lombok의 다양한 활용법을 정리해보는 시간을 가져볼까 한다. 자바를 이용하여 개발을 진행하다보면 반복적인 코드의 작성이 발생하는 경우가 있다. 예를들어, 데이터 클래스(Data Class)를 만들 때, 각각의 필드에 대한 getter & setter 메서드를 만들어 캡슐화 작업을 해줘야하고, 생성자 작성 등 번거롭다. 이때 lombok을 활용하면 아주 유용한데, 빌드 과정에서 특정 어노테이션에 따라 .class 파일에 자바 바이트코드를 자동으로 생성해줌으로써 위에서 언급한 번거로운 작업을 해결할 수 있다. lombok을 사용하기 위한 사전 준비는 간단하다. maven 혹은 gradle 환경에 맞게끔 의존성을 다음과 같이 추가해주면 된다. org.projectlombok lombok 1.18.20..
-
[프로그래머스/Level 2] k진수에서 소수 개수 구하기알고리즘 문제풀이/프로그래머스 2022. 10. 10. 17:13
https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 기출 입력받은 숫자 n을 k진수로 변환하는 것은 어렵지 않다. 그러나 주의해야 할 점이 두 가지 존재한다. 1. k진수로 변환된 수가 int의 범위를 벗어날 수 있다. 2. 단순히 2부터 k진수로 변환된 수 - 1 값을 하나씩 체크하며 소수 여부를 판단하면 TLE 발생할 수 있다. (아마 1번 TC에서 TLE이 발생할 것이다.) 1번은 long long 타입을 사용함으로써 해결할 수 있고,..