์๋ณธ ๋ฌธ์ ๋ ์ด๊ณณ์์ ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ฐ๋ตํ๊ฒ ํ๊ธ๋ก ๋ฌธ์ ๋ฅผ ๋ฒ์ญํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
int[]๋ฅผ ์ธ์๋ก ๋ฐ์์ 3 ๋ฐ๋ก ๋ค์ 4๋ฅผ ์์นํ๋๋ก ์ ๋ ฌํ ๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํฉ๋๋ค.
์ธ์๋ก ๋ค์ด์จ int[]์์ ์ซ์ 3๊ณผ ์ซ์4์ ๊ฐ์๋ ํญ์ ๋์ผํ๋ฉฐ, ์ซ์ 3 ๋ค์๋ ํญ์ 3๊ณผ 4๊ฐ ์๋ ๋ค๋ฅธ ์๊ฐ ๋ค์ด์ต๋๋ค. ์ซ์3์ ์ ๋ ฌํ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ์ ๋ค์ ์์น๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ํ, ์ฒซ ์ซ์ 3์ ํญ์ ์ซ์ 4๋ณด๋ค ๋จผ์ ์ถํํฉ๋๋ค.
๋ณดํต int[]๋ณด๋ค๋ Listํํ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ๊ฐ ์ฝ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ api๊ฐ ์ฌ์ฉํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ด์ฃ .
๊ทธ๋์ List๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
์ฐ์ int[] ๋ฅผ ๋ฃจํ๋ฅผ ๋๋ ค์ (3 ์ด ์ถํํ๋ ์์น + 1)๊ณผ (4์ ์์น)๊ฐ ์ด๋์ธ์ง๋ฅผ ๋๊ฐ์ ArrayList์ ๋๋ ์ ๋ฃ์์ต๋๋ค.
์ด์ฐจํผ 3๊ณผ 4์ ์ถํ ๋น๋๊ฐ ๋์ผํ๊ธฐ ๋๋ฌธ์ ๋๊ฐ ๋ฆฌ์คํธ์ ๊ธธ์ด๋ ํญ์ ๋์ผํ๊ฒ ์ฃ .
๊ทธ๋ ๊ฒ ๋ฃจํ๋ฅผ ํ๋ฒ ๋๋ฉด์ ์์น์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋ค๊ฐ, ์์น์ ๋ณด ๋ฆฌ์คํธ๋ฅผ ๋ฃจํ๋๋ฉด์ ํด๋น ์์น์ ์ซ์๋ค์ ์์น๋ฅผ ์๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ ๊ฒ์ด์ฃ . ( 3์ ์์น +1 )์ ์ ์ฅํ๋ ์ด์ ๋ 3 ๋ฐ๋ก ๋ค์์ ์ซ์์ 4์ ์์น๋ฅผ ์๋ก ๋ฐ๊ฟ์ค์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์ ๋ ์ฌ๊ธฐ์ ๋ฆฌ์คํธ๋ฅผ ๋๊ฐ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ๋ฆฌ์คํธํ๋์ ๋งต๊ฐ์ฒด๋ฅผ ๋ฃ์ด์ ๊ตฌํํ ์๋ ์๊ฒ ์ต๋๋ค. ๋งต์๋ ( 3์ ์์น+1)๊ณผ 4์ ์์น๊ฐ ๋ค์ด๊ฐ๊ฒ ์ฃ .
public int[] fix34(int[] nums) {
List<Integer> posOfFour = new ArrayList<Integer>();
List<Integer> posOfThree = new ArrayList<Integer>();
for ( int i = 0; i < nums.length; i++ ){
if ( nums[i] == 4 ){
posOfFour.add(i);
}
if ( nums[i] == 3 ){
posOfThree.add(i+1);
}
}
for ( int j = 0; j < posOfThree.size(); j++ ){
int temp = nums[(int)posOfThree.get(j)];
nums[(int)posOfThree.get(j)] = nums[(int)posOfFour.get(j)];
nums[(int)posOfFour.get(j)] = temp;
}
return nums;
}
'๐ป Programming > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Java / ์๋ฐ ] ํ์ฌ ๋ ์ง ๋ฐ ์๊ฐ ๊ตฌํ๊ธฐ (0) | 2015.04.27 |
---|---|
[Java] ์๋ฐ๋ก ๋ง๋ ๊ตฌ๊ตฌ๋จ ์์ค (0) | 2015.04.27 |
[์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด] CodingBat Array-3 maxSpan (0) | 2015.04.22 |
[์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด] CodingBat Logic-2 noTeenSum (0) | 2015.04.22 |
[์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด] CodingBat Logic-2 luckySum (2) | 2015.04.22 |