코트카타
16) x만큼 간격이 있는 n개의 숫자
나의 풀이
import java.util.*;
class Solution {
public long[] solution(int x, int n) {
long[] answer = {};
ArrayList<Long> list = new ArrayList<>();
for (int j = 1; j <= n; j++) {
list.add(x*(long)j);
}
answer = list.stream().mapToLong(Long::longValue).toArray();
return answer;
}
}
사실 값을 구하는 것 자체는 할 수 있었는데
list의 개념에 대해 익숙하지 않아서
쉽지 않았다.
다른 분들의 풀이
import java.util.*;
class Solution {
public static long[] solution(int x, int n) {
long[] answer = new long[n];
answer[0] = x;
for (int i = 1; i < n; i++) {
answer[i] = answer[i - 1] + x;
}
return answer;
}
}
출처 :https://school.programmers.co.kr/learn/courses/30/lessons/12954/solution_groups?language=java
이렇게 할 걸... 조금 허무하다.
배열을 동적으로 생성하고 값 대입하는 방법을 사용하셨다.
아직 리스트까지 사용하지 않아도 되나보다.
Java 문법 종합반
1주차
래퍼클래스
- 유용한 기능? 메소드 사용가능
// 박싱 VS 언박싱
// 박싱
// Integer 래퍼 클래스 num 에 21 의 값을 저장
int number = 21;
// Integer num = new Integer(number); deprecated 지원 안함
Integer num = number;
// 언박싱
int n = num.intValue(); // 래퍼 클래스들은 intValue() 같은 언박싱 메서드들을 제공해줍니다.
문자와 문자열
문자는 기본형 / 문자열은 참조형
참조형
-> 복잡(별도) 주소 get
Stack : 정적
Heap : 동적 - '알 수 없을 때'
자동 형변환
좌 우
큰 = 작은
작은 타입 & 큰 타입 연산 시, 큰 타입으로 형변환
=> 이거 알고리즘 문제에서 나왔었다.
2주차
대입연산자 ++, -- 주의하기
int a = 10;
int b = 10;
int val1 = ++a + b--; // a 는 연산전에 +1, b 는 연산후에 -1
if문과 switch문 차이점
if문 : 복합 조건 지원, 코드 중복
switch문 : 가독성
향상된 for문
for (int i : intArray) {
System.out.print(i); // 01234
}
배열의 경우에 사용하는데, 알고리즘 문제에도 나왔어서
자주 사용하며 익숙해져야겠다.
배열
//배열의 주소를 모두 같은 값으로 초기화
Arrays.fill(intArr,1);
String 기능 활용 (= char 배열)
메서드
|
응답값 타입
|
설명
|
length()
|
int
|
문자열의 길이를 반환한다.
|
charAt(int index)
|
char
|
문자열에서 해당 index의 문자를 반환한다.
|
substring(int from, int to)
|
String
|
문자열에서 해당 범위(from~to)에 있는 문자열을 반환한다. (to는 범위에 포함되지 않음)
|
equals(String str)
|
boolean
|
문자열의 내용이 같은지 확인한다. 같으면 결과는 true, 다르면 false가 된다.
|
toCharArray()
|
char[]
|
문자열을 문자배열(char[])로 변환해서 반환한다.
|
new String(char[] charArr)
|
String
|
문자배열(char[]) 을 받아서 String으로 복사해서 반환한다.
|
컬렉션
3주차
가변길이의 매개변수도 선언가능
void carSpeeds(double ... speeds) {
for (double v : speeds) {
System.out.println("v = " + v);
}
}
오버로딩은 println()을 생각하면 편하다
Getter 와 Setter를 통해 raw data를 내보내지 않아도 된다.
상속은 부모가 큰 사람이라고 생각하면 안된다.
상속관계 : is - a (”~은 ~(이)다”)
포함관계 : has - a (”~은 ~을(를) 가지고 있다”)
부모 클래스로부터 상속받은 메서드의 내용을 재정의 하는 것을 오버라이딩이라고 합니다.
다형성이란 ‘여러 가지 형태를 가질 수 있는 능력’을 의미합니다.
클래스가 설계도라면 추상 클래스는 미완성된 설계도입니다.
인터페이스는 두 객체를 연결해주는 다리 역할을 해줍니다.
'CODING > 스파르타 내일배움캠프 TIL' 카테고리의 다른 글
16_코트카타 문자열을 정수로 바꾸기_개인 과제 진행_25.1.3(금) (2) | 2025.01.03 |
---|---|
15_코트카타_Java 문법 종합반_25.1.2(목) (2) | 2025.01.02 |
13_코트카타_팀 프로젝트 발표, 피드백, 회고_학습법 특강_자바의 정석 객체지향_24.12.30(월) (0) | 2024.12.30 |
12_삼항연산자_Git 특강 복습_방명록 코드복습_자바의 정석 객체지향_24.12.27(금) (1) | 2024.12.27 |
11일차_코트카타 Stream_Firebase_Git 특강 복습_방명록 수정기능 구현_24.12.26(목) (1) | 2024.12.26 |