ํ๋ก๊ทธ๋๋จธ์ค | ์ ์กฐ์ํ๊ธฐ1 JAVA(์๋ฐ)
๐ง ๋ฌธ์
: ์ ์กฐ์ํ๊ธฐ1
๐งพ ๋ฌธ์ ์ค๋ช
์ ์ n๊ณผ ๋ฌธ์์ด control์ด ์ฃผ์ด์ง๋๋ค. control์ "w", "a", "s", "d"์ 4๊ฐ์ ๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, control์ ์์์๋ถํฐ ์์๋๋ก ๋ฌธ์์ ๋ฐ๋ผ n์ ๊ฐ์ ๋ฐ๊ฟ๋๋ค.
- "w" : n์ด 1 ์ปค์ง๋๋ค.
- "s" : n์ด 1 ์์์ง๋๋ค.
- "d" : n์ด 10 ์ปค์ง๋๋ค.
- "a" : n์ด 10 ์์์ง๋๋ค.
์ ๊ท์น์ ๋ฐ๋ผ n์ ๋ฐ๊ฟจ์ ๋ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋์ค๋ n์ ๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๐ค๐ป ์ ํ ์ฌํญ
- -100,000 ≤ n ≤ 100,000
- 1 ≤ control์ ๊ธธ์ด ≤ 100,000
- control์ ์ํ๋ฒณ ์๋ฌธ์ "w", "a", "s", "d"๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๋๋ค
๐ฉ ์ ์ถ๋ ฅ ์์
- n : 0, control : "wsdawsdassw", result : -1
- ์ n์ control์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ๋ณํ๊ฒ ๋ฉ๋๋ค.
- 0 → 1 → 0 → 10 → 0 → 1 → 0 → 10 → 0 → -1 → -2 → -1
- ๋ฐ๋ผ์ -1์ return ํฉ๋๋ค.
โ ๋ฌธ์ ํ์ด
๐ง ์ํ์ฐฉ์ค
์ฒ์์๋ String[] arr = str.split(” ”); ์ผ๋ก ๋ฌธ์์ด ๋ฐฐ์ด์ ๋ง๋ค๊ณ for๋ฌธ๋ String str์ผ๋ก ๋ฐ์์ ์ฒ๋ฆฌํ๋๋ฐ ์คํจํ๋ค... ์๋ฐ ๋ฌธ๋ฒ ๋๋ฌด ๋ชจ๋ฅด๋ ๊ฒ ๊ฐ์ ํํ๊ฐ ์ค๋ฉด์๋ ์ ์๋๋ ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ด์ chat gptํํ ๋ฌผ์ด๋ดค๋๋ฐ ์๋ ๋ชจ๋ฆ .... ๋ฉ์ฒญ์ด gpt ๊ทธ๋์ ๊ทธ๋ฅ char[] ๋ฐฐ์ด๋ก ๋์ด์ ํด๊ฒฐ ํ๋ค.
๐ ํด๊ฒฐ
1. ๋ฌธ์์ด์ toCharArray ๋ฉ์๋๋ฅผ ํตํด ๋ฌธ์ ๋ฐฐ์ด๋ก ๋ณํํ๋ค.
2. for-each๋ฌธ์ ํตํด ๋ฌธ์ ๋ฐฐ์ด์ ๋ฌธ์๋ค์ ํ๋์ฉ ๋ฐ์ ๊ฐ ๋ค๊ฐ์ง ๊ฒฝ์ฐ์ ๋น๊ตํ๊ณ n์ ๊ฐ์ ๋ฐ๊พผ๋ค.
class Solution {
public int solution(int n, String control) {
char[] arr = control.toCharArray();
for(char str : arr) {
if (str == 'w') {
n += 1;
} else if (str == 's') {
n -= 1;
} else if (str == 'd') {
n += 10;
} else if (str == 'a') {
n -= 10;
}
}
return n;
}
}
๐ ๋ฌธ์์ด ๋ฐฐ์ด ๋ฐฉ์
์ค๋ ๋ค์ ์๊ฐํด๋ณด๋ฉด์ ์๋ฌด๋๋ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ํ์ด๋ณด๊ณ ์ถ์ด์ ๋ค์ ํ์ด๋ดค๋ค. ๋ด๊ฐ ํ๋ ธ๋ ์ด์ ๋ split(" ")์ผ๋ก ์ ์๊ธฐ ๋๋ฌธ์ด์๋ค. ์๋ฐ ๋ฌธ๋ฒ์ด ๊ณ์ ํท๊ฐ๋ ค์ ๋ธ๋ก๊ทธ ์ฐพ์๋ณด๋ฉด์ ํ์์๋๋ฐ, ๊ทธ ๋ธ๋ก๊ทธ์์๋ split(" ")์ด๋ผ ์ ์ด์ ๊ทธ๊ฒ ๋ง๋ ์ค ์๊ณ ,
String[] arr = control.split(" ");
์ด๋ ๊ฒ ์ ์์๋๋ฐ ์ค๋ ์ ๋ฒ ์ฝ๋๋ฅผ ๋ค์ ์๊ฐํด๋ณด๋ฉด์ '์ ๊ณต๋ฐฑ์ ์ฐ๋๊ฑฐ์ง ?'๋ผ๋ ์๊ฐ์ด ๋ค์ด ๋ค์ ์ธํฐ๋ท ์ฐพ์๋ณด๋ ๋ฌธ์์ด ํ๋์ฉ ๋ถ๋ฆฌํ๊ณ ์ถ์ ๋๋ ๊ทธ๋ฅ ๊ณต๋ฐฑ ์์ด split("")์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ ๋ง๋ ๊ฑฐ์๋ค...
๊ทธ๋ ๊ฒ ํด๊ฒฐํ ํ์ด
1. ๋ฌธ์์ด ๋ฐฐ์ด๋ก ๋ง๋ค์ด for๋ฌธ์ ๋๋ ธ๋ค.
2. ๋ฌธ์์ด ๋น๊ต์ด๊ธฐ ๋๋ฌธ์ .equals ์ฌ์ฉ !
class Solution {
public int solution(int n, String control) {
String[] arr = control.split("");
for(String str : arr) {
if (str.equals("w")) {
n += 1;
} else if (str.equals("s")) {
n -= 1;
} else if (str.equals("d")) {
n += 10;
} else if (str.equals("a")) {
n -= 10;
}
}
return n;
}
}
โ ๋ค๋ฅธ ์ฌ๋์ ํ์ด
switch๋ฌธ์ผ๋ก ํธํ๊ฒ ๋ง๋์ ๋ถ์ด ๊ณ์ ๋ค... ๊ตณ
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;
}
}