본문 바로가기

전체 글102

[Java] 정수 오버플로우로 인한 반환값 다름정리 - (프로그래머스 12943 콜라츠 추측) 프로그래머스 12943. 콜라츠 추측 문제를 풀다가 입력값의 타입을 int 에서 long으로 변환한 것 하나로 반환값이 다르게 나오는 것을 확인 할 수 있었다. 그 이유에 대해서 알아보고 정리해보고자 한다. 먼저 문제는 프로그래머스 12943. 콜라츠 추측이다. 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → .. 2023. 10. 23.
[Oracle] 데이터 중복 제거 / DISTINCT, GROUP BY 오라클에서 데이터를 조회할 때 같은 값을 가진 데이터의 중복을 제거하기 위해서는 2가지 방법을 사용할 수 있다. 1. DISTINCT 사용 2. GROUP BY 절 사용 1. DISTINCT 를 사용한 중복 제거 오라클 쿼리문에서 데이터 중복을 제거할 때는 DISTINCT 키워드를 사용할 것을 권장한다고 한다. DISTINCT 키워드를 사용하면 SELECT 절에 DISTINCT 키워드만 명시하면 되므로 쿼리문이 간결해진다. 하지만 이 경우에는 temp tablespace(임시 테이블 스페이스)에 임시로 저장하고 작업하는 방식이라 시스템에 부하가 발생할 수도 있다. 형식) SELECT DISTINCT 중복 제거해 나타낼 컬럼명 FROM 테이블명 WHERE 조건 예시) 또한, 중복을 제거하여 카운트를 할 경.. 2023. 10. 21.
[Java] char 배열을 문자열로 변환하기 / String 생성자, String.valueOf(), StringBuilder, Stream 앞서서 문자열(String)을 char배열로 한 글자씩 분리하는 방법에 대해 정리했었다. 이번에는 char 배열을 문자열로 변환하는 방법에 대해 정리해보고자 한다. 1. String 생성자 char 배열을 String 생성자의 인자로 넣으면 문자열로 변환되어 String 객체가 생성된다. 예시) public void charArrayToString1() { char[] charArray = { 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd' }; String str = new String(charArray); System.out.println(str); } //출력 //HelloWorld 2. String.valueOf() String.valueOf() 의 인자로 .. 2023. 10. 21.
[Java] 문자열 한 글자씩 분리하기 / split(""), charAt(i), toCharArray(), chars() 코딩테스트로 자바공부를 하면서 유독 문자열을 분리하여라, 숫자를 뒤집어서 배열로 나타내라 등등의 문제들이 많았다. 나는 charAt()을 대부분 사용했는데 다른 사람들의 문제풀이를 보고 이런식의 풀이가 있구나 했던적이 꽤 많았다. 가령 Stream을 사용해서 한줄로 표현하는 사람도 있었고, split("")을 사용해서 분리하는 경우도 있었다.(split()은 프로젝트시 팀장이 쓰는걸보고 이런방법도 있구나 깨달은 방법이라 알고 있었다.) 따라서 자주 등장했던 문법들을 모아서 정리해보고자 한다. String.charAt(i) String으로 저장된 문자열 중에서 인덱스 i 에 해당하는 문자를 한 글자만 선택해서 char 타입으로 변환하는 메서드 String 타입의 참조변수를 char 타입으로 변환하는 과정은.. 2023. 10. 20.