Java

Programming/Java

[Java] Enum 은 == 비교 아니면 equals() ?

그 동안 써야지,, 하면서 계속 임시 저장되고만 있었던 게시글을 마무리 해보려고 한다. 최근 회사 내부에서 CI/CD 파이프라인에 소나큐브를 도입하면서 코드 리뷰 또한 많이 활성화가 되었다. 그중 Enum 타입에 대한 비교에 대해서 짧게 코드리뷰를 한 내용이 있는데 내용을 축약해서 정리해본다. # 발단 - 내가 등록한 PR에 있던 코드 중 특정 코드가 대략 아래처럼 되어있었다. public enum PaymentType REMITTANCE, ACCOUNT_TRANSFER, VISA_MASTER_CREDIT_CARD } public void someThingMethod(UserRequest userRequest){ if(userRequest.getPaymentType() == PaymentType.REMI..

Programming/Algorithm

[Programmer Weekly Challenge #1] 부족한 금액 계산하기

문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 co..

Programming/Java

[백 투 더 베이직] 객체지향 SOLID 원칙

SOLID원칙 SRP(Single Responsibility Principle): 단일 책임의 원칙 → 클래스는 단 하나의 책임을 가져야 하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다. OCP(Open-Closed Principle): 개방 폐쇄 원칙 → 확장에는 열려있어야 하며, 변경에는 닫혀있어야 한다. LSP(Liskove Substitution Principle): 리스코프 치환 원칙 → 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상적으로 동작 해야한다. ISP(Interface Segregation Principle): 인터페이스 분리 원칙 → 인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다. DIP(Dependency ..

Programming/Java

[삽질일기] Arrays.asList 와 ArrayList의 차이

코딩을 하다 보면, 배열 또는 List 형태가 아닌 데이터를 List 데이터 타입으로 만들 때 간편하게 Arrays.asLIst 메서드를 활용해서 그동안 리스트 데이터를 만들고 있었다. List score1 = Arrays.asList(1, 2, 3, 4, 5); 그러다가 Arrays.asList로 만든 List A에서 DB에서 조회한 List B의 값을 빼야 하는 경우가 생겼고 아무 생각 없이 다음과 같이 코드를 작성해봤다. List score1 = Arrays.asList(1, 2, 3, 4, 5); // DB에서 값을 가져옴 List score2 = getSomeDataFromDatabase(); // DB 값을 제외한 나머지 값을 찾아보자! score1.removeAll(score2); 그랬더니,..

Programming/Java

[Java] CMD 또는 Shell 환경에서 Java 컴파일 및 Jar 파일 만들기

보통 프로그래밍 언어를 통해 프로그램을 만들 때, IDE를 사용하여 소스를 컴파일하고 빌드하며 실행시킨다. 이러한 경험(?) 혹은 시간이 길어질수록 어쩌면, 어떤 사람은 IDE에서 자동으로 프로그램을 실행시키기까지의 과정 및 방법에 대하여 잊는 경우도 생기게 된다. 그런 사람(==나)을 위하여 Java 언어로 작성된 소스파일을 컴파일하고 실행 가능한 Jar 파일을 명령어를 통해 만드는 방법을 공유해본다. 내가 작성한 Java 소스 파일은 매우 간단하다. 심심풀이로 CPU Load Simulcast 프로그램을 만들어봤다. [CPULoadThread.java] package com.tistory.johnmark; public class CPULoadThread extends Thread { private f..

Programming/Algorithm

[30 Days of Code] 0: Hello, World

Objective In this challenge, we review some basic concepts that will get you started with this series. You will need to use the same (or similar) syntax to read input and write output in challenges throughout HackerRank. Check out the Tutorial tab for learning materials and an instructional video! Task To complete this challenge, you must save a line of input from stdin to a variable, print Hell..

Programming/Algorithm

[Hackerrank] counting valleys - java

Hackkerank의 Interview prepare ket 중 Warm-up Challenges의 CountingValleys 문제 풀이 Java 코드 [정의] - 스텝은 해수면을 기준으로 시작 - 모든 걸음은 U, D로 기록됨 (U은 언덕을 올라갈 때, D는 내려갈 때) - 산의 정의: 해수면을 기준으로 위로 올라가고 다시 아래로 내려왔을 경우, 한 개의 산으로 판단. - 계곡의 정의: 해수면을 기준으로 아래로 내려가고 다시 위로 올라왔을 경우, 한 개의 계곡으로 판단. [문제] - 주어진 걸음 배열을 바탕으로, 지나간 계곡의 수를 구하여라. [전략] - 해수면을 기준으로 아래로 내려갔다가 올라온 경우만 카운팅 - Y 좌표계로 생각해서, 해수면(=기준점)을 좌표 0으로 정의 - U 일 땐 현재 좌표에..

Programming/Algorithm

[Hackerrank] JumpingOnClouds - java

Hackkerank의 Interview prepare ket 중 Warm-up Challenges의 JumpingOnClouds 문제 풀이 Java 코드 [제약] - 점프는 현재 현재 인덱스에서 1 또는 2 증가한 인덱스까지만 가능. - 점프 가능한 구름의 값은 0, 피해야 하는 구름의 값은 1. - 구름을 통과할 수 있는 최소 점프 수를 구하라. [전략] - 최소 점프 수 이므로, 뛸 수 있는 최대 거리(2)를 우선적으로 탐색 - 최소 점프가 2므로, 피해야 하는 구름은 연속으로 있을 수 없다. (ex: 0 1 1 ) public class JumpingOnTheCloud { // Complete the jumpingOnClouds function below. static int jumpingOnClo..

JohnMark
'Java' 태그의 글 목록