Tags
- queue
- BFS
- ๊ทธ๋ํ ์ด๋ก
- Brute Force Algorithm
- greedy
- SpringBoot
- Dynamic Programming
- ๋ฌธ์์ด
- ์๋ฎฌ๋ ์ด์
- Java
- ๊ตฌํ
- sort
- LV2
- ๋ฐฑํธ๋ํน
- Study
- ๊ทธ๋ํ ํ์
- PGM
- ์ ์๋ก
- Python
- ๊ต์ฌ
- ์ํ
- ๊น์ด ์ฐ์ ํ์
- dfs
- DP
- CodingTest
- stack
- BOJ
- ์ ๋ ฌ
- ๋๋น ์ฐ์ ํ์
- ์๋ฃ๊ตฌ์กฐ
Archives
๊ธฐ๋ก๋ฐฉ
Lv.2 : ์ต๋๊ฐ๊ณผ ์ต์๊ฐ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- 5x5 ์ขํํ๋ฉด์์ ์ํ์ข์ฐ๋ก ์์ง์์ ๋ช ๋ น์ด๊ฐ ์ฃผ์ด์ง๋ค.
- ์ฒ์ ๊ฑธ์ด๋ณธ ๊ธธ์ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์ขํ๊ฐ 5x5์์์ ์์ง์ฌ์ผ ํ๋๊ฒ์ ์ ์ํ๋ค.
- ๋ฐฉ๋ฌธ ํ๋ ์ขํ๊ฐ ์๋, ์ง๋์จ ๊ธธ์ ์๋ฅผ ์ธ์ผํ๋ค.
- ๊ธธ์ ์๋ฅผ ์ ๋ ๋ฐฉํฅ์ ์๊ด์์์ ์ ์ํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Set;
import java.util.HashSet;
class Solution {
public int solution(String dirs) {
char[] orders = dirs.toCharArray();
Set<String> set = new HashSet<>();
int x = 0;
int y = 0;
for (char order : orders) {
int nx = x;
int ny = y;
switch (order) {
case 'U' :
nx--;
break;
case 'D':
nx++;
break;
case 'L':
ny--;
break;
case 'R':
ny++;
break;
}
if (Math.abs(nx) <= 5 && Math.abs(ny) <= 5) {
set.add(String.format("(%d,%d),(%d,%d)",x,y,nx,ny));
set.add(String.format("(%d,%d),(%d,%d)",nx,ny,x,y));
x = nx;
y = ny;
}
}
return set.size()/2;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ํ์ฌ ์ขํ์์ ๋ช ๋ น์ ๋ฐ๋ผ ๋ค์ ์ขํ๋ฅผ ๊ณ์ฐํ๊ณ , ์ด๋ ํ ์ ์์ผ๋ฉด ์ด๋ํ๋ค.
- ์ง๋์จ ๊ธธ์ ๊ฐ์๋ฅผ ์ธ๊ธฐ์ํด Set์ ์ขํ๋ฅผ ๊ธฐ๋กํ๋ค. ์ด๋, ๋ฐฉํฅ์ ๊ณ ๋ คํ์ง ์์ผ๋ฏ๋ก ๋ฐ๋ ๋ฐฉํฅ๋ ๊ฐ์ด ๊ธฐ๋กํ๋ค.
- ์ ์ฅ๋ ๊ธธ์ ๊ฐ์ / 2๋ฅผ ๋ฐํํ๋ค.
๐ธ end ๐ธ
- ๊ฐ๋จํ ๊ตฌํ๋ฌธ์ ์๋ค. ํ์ง๋ง, ๋ฐ๋ ๋ฐฉํฅ์ ๊ณ ๋ คํ์ง๋ชปํด์ ์ฝ๋๋ฅผ ์์ ํ ํ์ดํ๋ค.
- ๋ค๋ฅธ ํ์ด๋ฅผ ๋ณด๋, ๋ด ํ์ด์ฒ๋ผ ๋ฌธ์์ด ์ ์ฅํ๋ ๊ฒ๋ ์์์ง๋ง Hash๋ก ๋ณํํด ์ ์ฅํ๋๊ฒ ์ธ์ ๊น์๋ค.
- ๋ฐ๋๋ฐฉํฅ์ ์ด๋ป๊ฒ ์ ์ฅํ๋ ๋ณด๋, Point ํด๋์ค๋ก ์ขํ๋ฅผ ๊ด๋ฆฌํ๋๋ฐ, hashCode() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ํด์ Objects.hash(y+x) ๋ฐฉ์์ผ๋ก ์ขํ๋ฅผ ๋ํด ํด์๊ฐ์ ๋ง๋ค๊ณ , ๋ Point ํด๋์ค์ ํด์ ๊ฐ์ ๊ณฑ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
Objects.hash(start.hashCode() * end.hashCode())โ
- ๋ฐ๋๋ฐฉํฅ์ ์ด๋ป๊ฒ ์ ์ฅํ๋ ๋ณด๋, Point ํด๋์ค๋ก ์ขํ๋ฅผ ๊ด๋ฆฌํ๋๋ฐ, hashCode() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ํด์ Objects.hash(y+x) ๋ฐฉ์์ผ๋ก ์ขํ๋ฅผ ๋ํด ํด์๊ฐ์ ๋ง๋ค๊ณ , ๋ Point ํด๋์ค์ ํด์ ๊ฐ์ ๊ณฑ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
- ๋ ์ธ์ ๊น์๋๊ฑด, UDLR์ ๋ช ๋ น์ enum์ผ๋ก ์กฐ์ํ๊ฑฐ๋ ๊ธธ ๋ฐ ์ด๋์ ํด๋์ค๋ก ๊ตฌํํด์ ์คํธ๋ฆผ ๋ฐฉ์์ผ๋ก ๋ฐ๋ณตํด ํ์ดํ ๋ฐฉ๋ฒ๋ ์์๋ค. java์ ๋ค์ํ ๊ธฐ๋ฅ์ ์์ฃผ ์ ์ฌ์ฉํ ํ์ด ๊ฐ์์ ๋ง์ด ๋ฐฐ์ธ ์ ์์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : ๋ ๋ฐ๋จน๊ธฐ (0) | 2023.11.23 |
---|---|
Lv.2 : ์ฃผ์๊ฐ๊ฒฉ (0) | 2023.11.23 |
Lv.2 : ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2023.11.21 |
Lv.2 : n์ง์ ๊ฒ์ (0) | 2023.11.11 |
Lv.2 : ์์ถ (0) | 2023.11.09 |