만족은 하되 안주하지는 말자

기록해야 기억한다

분류 전체보기 168

[JAVA] 다형성 (상속, 오버라이딩, 업캐스팅)

다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미한다. -www.opentutorials.org- 다형성의 대표적인 예로는 Override 가 있다. 클래스의 부모메소드에 정의되어있는 메소드를 자식클래스의 입맛에 맞게 다양한 형태로 바꿀 수 있음을 의미한다. 자바 다형성의 예시를 확인해보자. Car 는 모든 자동차 종류의 부모 클래스다. 하위에는 자동차의 한 분류인 SUV 가 있다. Main.java class Main { public static void main(String[] args) { Car car = new Car(); Car suv = new Suv(); car.run(); suv.run(); } } Car.java public class Car { ..

[JAVA] Thread 로 은행계좌 문제 (Bank Account Problem)를 확인해보자.

쓰레드란? 프로세스 내 하나의 실행 흐름 단위이다. 각 프로세스는 최소 1개 이상의 쓰레드를 가진다. (만약 그 쓰레드가 1개인 경우, 그 쓰레드를 메인 쓰레드라 한다) 멀티 스레드를 잘 구성한다면, 멀티 프로세스로 구성할 때에 비해 메모리 공유량이 줄어들어 시스템 자원 소모가 줄어든다. Context Switching 에 대한 오버헤드도 줄어든다. 하지만 프로그래머가 골치를 썩일 문제 또한 많은데 그런 예시 중 대표적인게 "은행 계좌 문제", "식사하는 철학자 문제" 이다. 이중 은행계좌 문제로 알 수 있는 건, Critical Section 문제다. 임계구역 문제인데 같은 자원을 서로 다른 쓰레드가 점유하고자 해서 생기는 문제점이다. 이 임계구역 문제를 해결하기 위해선 적절한 실행 흐름 제어가 필요하..

[예비개발자] 2020 카카오 블라인드 채용 1차 코딩 테스트 후기

내 나이 25살. 재수도, 휴학도, 워홀도 한 번 안해본 채 정직하게 하지만 빠르게 졸업을 앞두고 있다. 대학가기보다 어렵고 힘들다는 취준생의 신분이 나는 되었다. 알고리즘의 중요함? 알고는 있었다. 본격적으로 준비하기 시작한 건 대략 올해 5~6월부터다. 3학년 때 이미 교내 알고리즘 대회에서 1문제밖에 풀지 못하는 참사를 겪었다. 그래서 적어도 4학년 들어서는 알음알음 한땀한땀 한 문제씩 풀어오다가, 인생 첫 코테에서 나름 준비를 한 채 풀었지만 제대로 풀린게 없었다. 그 때 문자열 문제들때문에 골치가 아픔을 느껴 파이썬으로 갈아타게 되었다. 그 후 친구와 알고리즘 문제풀이 깃허브도 파면서 (github.com/kjwook7522/luna-algorithm) 꾸준히 난이도 별로 문제를 풀고 업로드도 ..

인생 2020.09.17

[SpringBoot] Mustache 에서 Key값이 Null or empty인 경우 처리하기

package com.hanium.hfrecruit.domain.user; import com.hanium.hfrecruit.domain.spec.PersonalSpec; import lombok.*; import javax.persistence.*; import java.util.List; @Data @Getter @AllArgsConstructor @NoArgsConstructor @ToString(exclude = "personalSpecs") @Entity @Table(name = "user") public class User { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id private Long userNo; @Column(nullable ..

[python] 백준 14499번: 주사위 굴리기

www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 테마 구현, 시뮬레이션 예상 소요시간 3~40분 아이디어 1. 주사위 배열 3*4 를 만든다. [1,1] 이 하늘은 보는 면. [3,1] 이 땅을 보는 면이다. 0x0 xxx 0x0 0x0 2. 방향을 1: 동 / 2: 서 / 3: 북 / 4: 남으로 정해 dx,dy 를 만든다. (이동) 3. 다음좌표가 (즉 굴린 후 지도 좌표) 유효하다면 다음..

[python] codility: MaxCounters

app.codility.com/programmers/lessons/4-counting_elements/ 4. Counting Elements lesson - Learn to Code - Codility Calculate the values of counters after applying all alternating operations: increase counter by 1; set value of all counters to current maximum. app.codility.com Lesson 4 Counting Elements 의 2번째 문제다. 주제는 카운팅인 것 같다. 코딜리티의 특징은, 테스트 케이스는 적게 내주고 실제 채점 케이스에서 좌절감을 느끼게 해주는 것 같다. 그래서 더 큰 도움이 ..

[python] 백준 1932번: 정수 삼각형

www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 분류 DP(다이나믹 프로그래밍) C+ 코드 링크 choichumji.tistory.com/42 [C++][알고리즘] 프로그래머스:: 정수 삼각형 https://programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업 choichumji.tistory.com 삼각형의 위 꼭짓점으로부터 아래의 왼쪽과 오른쪽으로 ..