일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래머스
- 컴퓨터개론
- 스파르타코딩클럽
- 중심사회
- wil
- 컴퓨터구조론 5판
- 99일지
- 개발자블로그
- 자바
- Flutter
- 스파르타내일배움캠프WIL
- 부트캠프
- 소프트웨어
- 코딩테스트
- 스파르타내일배움캠프
- 스파르타내일배움캠프TIL
- 항해
- AWS
- Spring
- java
- 개발자스터디
- Python
- 개인공부
- 백준
- MySQL
- 국비
- til
- 내일배움캠프
- 운영체제
- 99클럽
- Today
- Total
컴공생의 발자취
자바 동적 배열 선언 및 형변환 (long to String) 본문
💡 오늘의 학습 키워드
- 자바 배열 선언
- 형변환
* long to String
자바 배열 선언
* new 연산자로 배열 생성
: 값의 목록을 가지고 있지 않지만, 향후 값들을 저장할 배열을 미리 만들고 싶다면 new 연산자로 다음과 같이 배열 객체를 생성할 수 있다.
타입[] 변수 = new 타입[길이];
길이는 배열이 저장할 수 있는 값의 개수를 말한다. 이미 배열 변수가 선언된 경우에도 new 연산자로 배열을 생성할 수 있다.
타입[] 변수 = null;
변수 = new 타입[길이];
* 값 목록으로 배열 생성
:값의 목록이 있다면 다음과 같이 간단하게 배열 객체를 생성할 수 있다.
타입[] 변수 = { 값0, 값1, 값2, 값3, ... };
배열 변수를 미리 선언한 후 값 목록들이 나중에 결정되는 상황이라면 다음과 같이 new 연산자를 사용해서 값 목록을 지정해주면 된다. new 연산자 바로 뒤에는 배열 변수 선언에서 사용한 "타입[]"을 붙여주고 중괄호 {}에는 값들을 나열해준다.
타입[] 변수 = null;
변수 = new 타입[] { 값0, 값1, 값2, 값3, ... };
* 형변환 안전장치
모든 기본 타입에 대해 최댓값(max)과 최소값(min)을 다음과 같이 상수로 제공하고 있다. (boolean과 char 타입 제외)
형변환
* long to String : long형을 문자열로 변환하기
- Long.toString(String str)
long val = 200;
String str = String.valueOf(val);
System.out.println(str);
// result : 200
- String.valueOf(String str)
long val = 200;
String str = Long.toString(val);
System.out.println(val);
// result : 200
오늘의 회고
문제 : [자연수 뒤집어 배열로 만들기]
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
입력된 자연수의 값을 일의자리부터 시작해서 n의 자리까지의 숫자를 배열 형태로 리턴해주는 문제였다.
입력값은 int의 범위를 넘는 10,000,000,000이하인 자연수이다.
배열에 넣는 과정은
- answer[i] = 입력받은 값 % 10
- 입력받은 값 = 입력받은 값 / 10
이 과정을 거치는 거였다.
그런데 대략적인 과정은 생각했는데, 숫자의 자리 수만큼을 배열을 만들어야 되는데...
이 부분에서 고민하다가 배열의 동적 선언과 숫자의 자리 수 계산을 검색해보았다.
숫자의 자리 수 계산은 함수도 있었지만, 숫자를 문자로 변환한 후 그 문자의 길이를 구하는 것으로 선택했다.
음수라면 조건식이 하나 더 들어가겠지만 자연수이기에 그러한 조건식은 들어가지 않는다.
- 어떻게 해결했는지
// input : 자연수(int의 값을 넘음 = long)
// 변수 : 자리 수
// 자리 수 구하기
// 문자열로 변경 후 문자열의 길이 구하기
// answer의 크기 자리 수로 지정
// 자리 수 만큼 반복
// answer = 입력받은 값을 10으로 나눈 나머지
// 입력받은 값 = 입력받은 값을 10으로 나눈 몫
// return : 자연수 뒤집은 배열
class Solution {
public int[] solution(long n) {
int len = Long.toString(n).length();
int[] answer = new int[len];
for (int i = 0; i < len; i++) {
answer[i] = (int)(n % 10);
n = n / 10;
}
return answer;
}
}
- 무엇을 새롭게 알았는지
오늘은 자바의 동적 배열 선언과 long to String의 형변환 함수에 대해 알 수 있었다.
그리고 숫자의 자리 수를 계산할 때 반복문을 쓰는 방법도 있겠지만, 문자열로 변경한 후 그 문자열의 길이를 계산하는 방식으로도 자리 수를 구할 수 있다는 새로운 방식을 습득했다.
내일 학습할 것은 무엇인지
- 빅분기 자격증 공부!!!
- 클럽99 코딩테스트
'💡 코테' 카테고리의 다른 글
StringBuilder에 대해 (2) | 2024.04.03 |
---|---|
자바 char 배열 정렬 (Sorting) 및 형변환 (char Array to String && Array to String) (3) | 2024.04.02 |
JAVA 자동 형변환 & 강제 형변환 (0) | 2024.03.31 |
문자열에서 index 위치의 문자 반환 및 형변환 (char to int & String to Array) (0) | 2024.03.30 |
자료형의 크기와 범위 (0) | 2024.03.29 |