**jekyll 페이지로 옮길 내용들 블로그에 백업해두기~!
코딩기초 연습 ::: 7월 중순의 기록
1. 이어 붙인 수
각 자리수의 덧셈
처음부터 해당 자리 수를 10을 곱해 만들어줄 수 있다.
스트링으로 바꾼 후에 굳이 할 필요없이
Int로만 처음부터 끝까지 ~ 1*0+ 3*10 + 5*100.. 이렇게 진행하면 되니까!
class Solution {
public int solution(int[] num_list) {
int answer = 0;
int even = 0;
int odd = 0;
for(int num : num_list) {
if(num % 2 == 0) {
even *= 10;
even += num;
} else {
odd *= 10;
odd += num;
}
}
answer = even + odd;
return answer;
}
}
2. 코드처리하기
*문제에서 조건이 없다면 굳이 힘들게 배열로 안 옮기고 차례대로 문자열을 추가하면 된다.
문자열 직접 활용하여 3줄 더 줄이기
class Solution {
public String solution(String code) {
int mode = 0;
String ret = "";
for (int idx = 0; idx < code.length(); idx++) {
if (code.charAt(idx) == '1') {
mode = 1 - mode;
} else if (mode == 0 && idx % 2 == 0) {
ret += code.charAt(idx);
} else if (mode == 1 && idx % 2 == 1) {
ret += code.charAt(idx);
}
}
if (ret.equals("")) {
return "EMPTY";
} else {
return ret;
}
}
}
3. 주사위 게임 2
int a = 2;
// 제곱
int square = (int) Math.pow(a, 2);
System.out.println(square); // 출력: 4
// 세제곱
int cube = (int) Math.pow(a, 3);
System.out.println(cube); // 출력: 8
class Solution {
public int solution(int a, int b, int c) {
int answer = 1;
int count = 1;
if(a == b || a == c || b == c) {
count++;
}
if(a == b && b == c) {
count++;
}
for(int i = 1; i <= count; i++) {
answer *= (pow(a,i)+pow(b,i)+pow(c,i));
}
return answer;
}
private int pow(int a, int b) {
if(b == 0) return 1;
return a * pow(a, b-1);
}
}
- pow 클래스를 오버라이딩 : count 라는 변수를 써서 제곱할 수를 조절
- (pow 클래스 내에서 재귀호출 ..?)
- Tip : pow(a,b-1) pow 메서드에서 사용하는 변수를 a, b 말고 a 대신 base라는 이름을 사용하고, b 대신 exponent라는 이름을 사용해보기
4. 등차수열의 특정항만 더하기
stream
import java.util.stream.IntStream;
class Solution {
public int solution(int a, int d, boolean[] included) {
return IntStream.range(0, included.length).map(idx -> included[idx]?a+(idx*d):0).sum();
}
}
String variable = "wasdwasd";
int n = 0;
for (char ch : variable.toCharArray()) {
switch (ch) {
case 'w':
n += 1;
break;
case 's':
n -= 1;
break;
case 'd':
n += 10;
break;
case 'a':
n -= 10;
break;
default:
System.out.println("유효하지 않은 조건입니다.");
break;
}
}
System.out.println("변경된 n 값: " + n);
`for` 문에서 `:` 기호는 Enhanced for 문 또는 향상된 for 문이라고도 불립니다. 이 문법은 배열이나 컬렉션과 같은 반복 가능한(iterable) 객체를 순회하며 요소에 접근할 때 사용됩니다.
`variable.toCharArray()`는 `variable` 문자열을 `char` 배열로 변환하는 메소드입니다. 이 메소드는 `variable` 문자열의 각 문자를 개별적인 `char` 요소로 가지는 배열을 반환합니다.
`for (char ch : variable.toCharArray())`는 변환된 `char` 배열의 각 요소에 대해 반복하면서 `ch` 변수에 순차적으로 할당하는 것을 의미합니다. 즉, `ch` 변수는 `variable` 문자열의 각 문자를 차례대로 나타내는데 사용됩니다.
이러한 문법을 사용하면 반복문을 통해 배열이나 컬렉션의 요소에 쉽게 접근할 수 있으며, 반복 변수를 명시적으로 선언하고 할당할 필요가 없어 코드를 간결하게 작성할 수 있습니다.
class Solution {
public int solution(int n, String control) {
int answer = n;
for(char ch : control.toCharArray()) {
switch(ch) {
case 'w': answer += 1; break;
case 's': answer -= 1; break;
case 'd': answer += 10; break;
case 'a': answer -= 10; break;
default:break;
}
}
return answer;
}
}
class Solution {
public int solution(int n, String control) {
return control.chars().reduce(n, (acc, c) -> acc + (c == 'w' ? 1 : c == 's' ? -1 : c == 'd' ? 10 : -10));
}
}
5. 수열과 구간 쿼리2
malloc쓰는 거 너무 어렵다
'코딩기초' 카테고리의 다른 글
Microsoft Azure Virtual Training Day: AI Fundamentals 학습 수강 후기 (2) | 2023.07.13 |
---|---|
Java ::: int string으로 변환 쉽게 하기, Map of(); (0) | 2023.06.14 |