본문 바로가기

전체 글

(205)
[JAVA] 생성자가 private로 선언하는 목적 JAVA 프로젝트 코드를 보다보니, private로 선언된 생성자들이 꽤 많이 보였다. 그때 들었던 생각은 "생성자를 private로 선언하면 외부에서 인스턴스 생성을 하지 못하는데 대체 무슨 의미가 있는것이지?" private 으로 생성자를 선언하게 되면 인스턴스 생성이 불가능하고, 더 나아가 서브클래스를 만들 수 없다. 하지만 이렇게 의도적으로 private로 생성자를 만들어주는 경우가 있는데, 이는 해당 클래스의 인스턴스 생성이 무의미하기 때문이다. 예를 들어 java.util package 의 Arrays나 java.lang package의 Math 클래스는 해당 클래스에 정의된 메스도만 사용할 뿐, 굳이 인스턴스를 생성할 필요가 없다. 이런 경우 개발자가 의도적으로 인스턴스를 사용하지 못하도록 ..
[Linux] 파일 인코딩 형식 확인 명령어 및 변환 명령어 파일 인코딩 형식 확인 명령어 (file -bi) # file -bi 파일명 예제) #file -bi kb.py 출력값 text/x-python; charset=utf-8 file -bi 명령어를 사용하면 특정 파일의 인코딩 형식을 알 수 있다. 위 예제에서는 utf-8 형식으로 인코딩되었다는 것을 알 수 있다. 파일 인코딩 형식 변환 명령어 (iconv) iconv -c -f 현재인코딩형식 -t 변환할인코딩형식 kb.py > kb_new.py 리눅스에서 파일 인코딩 형식을 변환하는 명령어는 iconv이다. 실제 사용례는 아래와 같다. # iconv -c -f utf-8 -t euc-kr kb.py > kb_new.py 형식이 변환된 파일 kb_new.py의 파일 인코딩 형식을 확인해보면 변환된 것을 알..
[JAVA] equals 메서드 사용시 NullPointerException 다루는 팁 JAVA에서 문자열을 비교할때는 주로 equals 메서드를 사용한다. 하지만 equals.() 를 부르는 인스턴스가 null인 경우 NullPointerException이 발생하게 된다. 예를들면 아래와 같은 상황 public class MyClass { public static void main(String args[]) { String strA = null; System.out.println(" Result : " + strA.equals("test")); } } 결과값 : Exception in thread "main" java.lang.NullPointerException at MyClass.main(MyClass.java:4) Command exited with non-zero status 1 ..
[백준 1316] 그룹단어체커 [백준 1316] 그룹단어체커 [출처 :백준] 문제접근방법먼저 문자열의 연속이 끝난 상황에서 또 다시 해당 문자가 발견되면 그룹단어가 될 수 없다. 이를 체크하기 위해 이미 나왔던 단어를 저장하는 링크드 리스트를 만들어 이 리스트에 값이 있는지 없는지를 체크했다. 소스코드 (JAVA) import java.util.LinkedList; import java.util.Scanner; public class Solution { static int N = 0; static int K = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 입력 N 받기 int cnt = 0; N = Integer.parseInt(..
[백준 2438] 부녀회장이 될테야 (완료) [백준 2438] 부녀회장이 될테야 (완료) 문제링크 : https://www.acmicpc.net/problem/2775 [출처 : 백준] 문제접근방법딱히 설명할 것이 없는 문제.초기 배열을 토대로 호마다 그리고 층마다 계산만 해주면 된다. 소스코드(JAVA) import java.util.Scanner; public class Solution { static int N = 0; static int K = 0; static int T = 0; public static void main(String[] args) { StringBuilder sb = new StringBuilder(); Scanner sc = new Scanner(System.in); T = Integer.parseInt(sc.nextL..