programmers.co.kr/learn/courses/18
* ๊ฐ์ ๋งํฌ๋ ์์ ์์ต๋๋ค
ํํธ1. ์๋ฆฟ์ ๋ํ๊ธฐ ๋ฌธ์
๊ฐ ์๋ฆฟ์์ ํฉ ๊ตฌํ๋ ๋ฐฉ๋ฒ : 1์ ์๋ฆฌ๋ฅผ ๊ตฌํจ -> 1์ ์๋ฆฌ๋ฅผ ์ ๊ฑฐ(๋๋๊ธฐ 10)ํ๊ณ ๋๋จธ์ง ์ซ์๋ค์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ์ด๋ -> ์ด๋์ํฌ ์ซ์๊ฐ ์์ ๋ ๊น์ง ๋ฐ๋ณต
ex) 123 : 123 % 10 = 3, 123 / 10 = 12 -> 12 % 10 = 2, 12 / 10 = 1 -> 1 % 0 = 1, 1 / 10 = 0
#include <iostream>
using namespace std;
int solution(int n)
{
int sum = 0;
while(n>0)
{
sum += n % 10;
n /= 10;
}
return sum;
}
*์ ๋ ฅ๋ฐ์ n์ด 0๋ณด๋ค ํฐ ๋์ ๊ฐ ์๋ฆฟ์์ ํฉ ๊ตฌํ๋ ๋ฐฉ๋ฒ(sum += n %10; n /= 10;)์ ์ด์ฉํด ์ฝ๋๋ฅผ ๊ตฌํ
ํํธ2. ์์ด ๊ฒ์ฌ ๋ฌธ์
์ค๋ณต ์๋ ๋ฐฐ์ด
1. ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ๊ฐ์ด ์๋์ง ํ์ธํด๋ณด๊ธฐ
2. ๋ฒ์๋ฅผ ๋ฒ์ด๋์ง ์๋ ๊ฐ์ด ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ์ฒดํฌํ๊ธฐ
1) ๋ฐฐ์ด ์ด์ฉ
#include <vector>
#include <iostream>
using namespace std;
int chk[100001] = {0};
bool solution(vector<int> arr)
{
int n = arr.size();
for(int i = 0; i < n; ++i){
if(arr[i] < 1 || arr[i] > n)
return false;
chk[arr[i]]++;
}
for(int i = 1; i <= n; ++i)
if(chk[i] != 1)
return false;
return true;
}
*์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ n์ ์ ์ฅ
์ฒซ๋ฒ์งธ for๋ฌธ : ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ์ํํ๋ฉด์ ๋ง์ฝ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ์ซ์(n๋ณด๋ค ํฌ๊ฑฐ๋, 1๋ณด๋ค ์๊ฑฐ๋)๊ฐ ์๋ค๋ฉด false ๋ฆฌํด
chk[arr[i]]++; : array์ i๋ฒ์งธ ์์๊ฐ chk์ ์ธ๋ฑ์ค๋ก ๋ค์ด๊ฐ์ ํด๋น ๊ฐ์ด ๋ช ๋ฒ ๋ํ๋ฌ๋์ง ์ฒดํฌ
๋๋ฒ์งธ for๋ฌธ : chk ๋ฐฐ์ด์ ๊ฐ์ด ๋ชจ๋ 1์ด๋ผ๋ฉด(๋ชจ๋ ๊ฐ์ด ๊ณ ๋ฅด๊ฒ ๋ค์ด๊ฐ๋ค๋ฉด) true ๋ฆฌํด
2) ์ ๋ ฌ ์ด์ฉ
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
bool solution(vector<int> arr)
{
sort(arr.begin(), arr.end());
for(int i = 0; i < arr.size(); ++i)
if(arr[i] != i + 1)
return false;
return true;
}
*์ ๋ ฌ์ ์ด์ฉํ๊ธฐ ์ํด์๋ #include <algorithm> ํค๋ ํ์ผ ํ์
์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ์ ๋ ฌํ ํ์ for๋ฌธ์ ์ด์ฉํ์ฌ chk ๋ฐฐ์ด์ ๊ฐ์ด ๋ชจ๋ 1์ด๋ผ๋ฉด(๋ชจ๋ ๊ฐ์ด ๊ณ ๋ฅด๊ฒ ๋ค์ด๊ฐ๋ค๋ฉด) true ๋ฆฌํด
ํํธ3. ๋๋จธ์ง ํ ์ ๋ฌธ์
์ง์ฌ๊ฐํ ์ขํ : (x1, y1), (x2, y1), (x1, y2), (x2, y2) -> x1, x2, y1, y2 ๊ฐ์๊ฐ ๊ฐ๊ฐ 2๊ฐ์ฉ
1) ์กฐ๊ฑด๋ฌธ
2) ํด์
3) xor ์ด์ฉ(๊ฐ๋จํ๊ฒ ๊ตฌํ ๊ฐ๋ฅ)
A xor A = 0
(A xor A) xor B = B
#include <iostream>
#include <vector>
using namespace std;
vector<int> solution(vector<vector<int>> v) { // ๊ธฐ๋ณธ์ ์ธ 2์ฐจ์ ๋ฒกํฐ์ ์ ์ธ ๋ฐฉ์
vector<int> ans = {0,0}; // ์ด๊ธฐํ
for(int i = 0; i < 3; ++i){
ans[0] ^= v[i][0];
ans[1] ^= v[i][1];
}
return ans;
}
*๋จผ์ 3๊ฐ์ ์ ์ ๋ชจ๋ ์ ๋ ฅ์ ๋ฐ์
for๋ฌธ์ ์ด์ฉํด 3๋ฒ ๋ฐ๋ณต(3๊ฐ์ ์ )
ans[0] : x์ขํ, ans[1] : y์ขํ
v[0][0]๋ถํฐ v[3][0]๊น์ง 3๊ฐ์ ์ ์ xor ์ฐ์ฐ(^)์ ์ฌ์ฉํด์ ๋๋จธ์ง ํ์ ์ x์ขํ๋ฅผ ๊ตฌํจ
v[0][1]๋ถํฐ v[3][1]๊น์ง 3๊ฐ์ ์ ์ xor ์ฐ์ฐ(^)์ ์ฌ์ฉํด์ ๋๋จธ์ง ํ์ ์ y์ขํ๋ฅผ ๊ตฌํจ
์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด์ ์์ฑํ๋ ๊ฒ๋ณด๋ค xor ์ฐ์ฐ์ ์ด์ฉํ๋ ๊ฒ์ด ๋ ์ฝ๋๊ฐ ์งง์์ง๋ ๊ฒ์ ์ ์ ์์๋ค
'๊ฐ๋ฐ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋๋ ๊ฒ (0) | 2022.07.14 |
---|