[Programmers] 181944번 - 홀짝 구분하기 [Java][C++]
문제 링크 1. 아이디어 n을 2로 나눈 나머지로 홀짝을 판정해주면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] import java.io.*; public clas...
문제 링크 1. 아이디어 n을 2로 나눈 나머지로 홀짝을 판정해주면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] import java.io.*; public clas...
문제 링크 1. 아이디어 my_string을 [0, s) 앞부분과 [s+len, ...) 뒷부분 두 조각으로 보고, 그 사이를 overwrite_string으로 통째로 교체해 이어붙이면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(N)$ $O(1)$...
문제 링크 1. 아이디어 num을 n으로 나눈 나머지가 0인지만 확인해주면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] class Solution { publi...
문제 링크 1. 아이디어 control 문자열을 앞에서부터 순서대로 읽으며 w, s, d, a에 대응하는 +1, -1, +10, -10을 n에 그대로 누적해줬다. 2. 복잡도 시간복잡도 공간복잡도 $O(N)$ $O(1)$ $N$...
문제 링크 1. 아이디어 인접한 두 로그값의 차이는 항상 +1, -1, +10, -10 중 하나다. 그 차이를 보고 각각 w, s, d, a로 되돌려 조작 기록 문자열을 복원해줬다. 2. 복잡도 시간복잡도 공간복잡도 $O(N)$ $O(1)$ ...
문제 링크 1. 아이디어 귤의 크기가 담긴 배열이 주어질 때 k개의 귤을 고르면서 서로 다른 종류의 수가 최소가 되야하는 문제다. 크기가 같은 귤이 여러 개 존재할 수 있어 해시맵을 활용해 key에 귤의 크기, value에 귤의 개수를 담아 먼저 처리를 해주었다. 이후 해시맵에서 value만 꺼내면 크기 별로 분류된 귤의 개수만 얻을 수 있다...
문제 링크 1. 아이디어 두 분수를 통분해 더한 뒤(분자는 교차곱의 합, 분모는 두 분모의 곱), 유클리드 호제법을 활용해 최대공약수로 나눠 기약분수로 만들어줬다. 2. 복잡도 시간복잡도 공간복잡도 $O(\log(\min(a,b)))$ $O(1)$ ...
문제 링크 1. 아이디어 Happy Number인지 판별하는 문제로 Happy Number는 주어진 수의 각 자릿수를 제곱한 후 더해서 나온 수에 대해 다시 같은 과정을 반복할 때 1이 되는 수이다. 수의 변환 과정에서 특정 사이클이 반복되어 Happy Number가 되지 않을 수도 있는데 이를 판별하는 것이 핵심이다. 간단하게는 해시셋을 활...
문제 링크 1. 아이디어 주어진 n을 이진수로 나타냈을 때 1인 비트 개수를 그대로 세면 되는 문제다. 언어 내장 함수를 활용하면 간단하게 해결할 수 있다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 ...
문제 링크 1. 아이디어 같은 수를 두 번 XOR하면 0이 되어 상쇄된다. 배열 전체를 한 번에 XOR로 누적하면 짝을 이룬 값들은 모두 사라지고, 짝이 없는 유일한 값만 남게 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(N)$ $O(1)$ ...