[Programmers] 258705번 - 산 모양 타일링 [Java][C++]
문제 링크 1. 아이디어 주어진 도형을 정삼각형 또는 마름모 타일을 활용해서 채울 수 있는 경우의 수를 구하는 문제로 다이나믹 프로그래밍을 활용하면 해결할 수 있다. dp 테이블은 윗변의 길이를 i라 할때 dp[i]는 윗변의 길이가 i인(왼쪽부터 i만큼만) 해당 도형을 채울 수 있는 경우의 수로 정의하면 된다. 마름모 타일의 경우 간섭이 존재할...
문제 링크 1. 아이디어 주어진 도형을 정삼각형 또는 마름모 타일을 활용해서 채울 수 있는 경우의 수를 구하는 문제로 다이나믹 프로그래밍을 활용하면 해결할 수 있다. dp 테이블은 윗변의 길이를 i라 할때 dp[i]는 윗변의 길이가 i인(왼쪽부터 i만큼만) 해당 도형을 채울 수 있는 경우의 수로 정의하면 된다. 마름모 타일의 경우 간섭이 존재할...
문제 링크 1. 아이디어 n이 홀수면 n 이하의 모든 홀수의 합을, n이 짝수면 n 이하인 모든 짝수의 제곱의 합을 return하는 문제로 홀수, 짝수 여부를 조건문으로 분기 처리한 후 반복문으로 합을 계산해줬다. 2. 복잡도 시간복잡도 공간복잡도 $O(n)$ ...
문제 링크 1. 아이디어 ineq와 eq에 따라 다른 연산을 하는 문제로 조건문을 활용해 분기 처리를 해주는 방식으로 해결했다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] ...
문제 링크 1. 아이디어 flag에 따라 다른 수식을 계산해서 return하는 문제로 삼항 연산자를 활용해서 간단하게 해결했다. 2. 복잡도 시간복잡도 공간복잡도 $O(1)$ $O(1)$ 3. 코드 풀이 [Java][C++] ...
문제 링크 1. 아이디어 모든 원소의 곱과 합의 제곱의 대소관계를 비교하는 문제로 반복문을 활용해 구한 후 비교해줬다. 2. 복잡도 시간복잡도 공간복잡도 $O(N)$ $O(1)$ $N$ = num_list 길이 3. 코드...
문제 링크 1. 아이디어 홀수끼리, 짝수끼리 순서대로 이어 붙인 수에 대해 합을 구하는 문제로 문자열 덧셈을 활용해 홀수끼리, 짝수끼리 이어 붙인 문자열을 구한 후 이를 다시 정수로 변환해서 더하는 방식으로 해결했다. 2. 복잡도 시간복잡도 공간복잡도 $O(N)...
문제 링크 1. 아이디어 정수 리스트 num_list에 대해 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을, 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하려 return하는 문제로 인덱스를 통해 특정 위치의 원소에 접근할 수 있으면 해결할 수 있다. 2. 복잡도 ...
문제 링크 1. 아이디어 정수 배열 nums에 대해 등장 빈도수가 k번째로 많은 수까지 찾아서 출력하는 문제로 해시맵을 활용한 방식과 버킷 정렬을 활용한 방식으로 해결할 수 있다. 해시맵의 경우 key에 해당 숫자, value에 등장 횟수를 저장한 카운팅 맵을 먼저 계산해주었다. 이후 수와 등장 횟수 객체를 갖는 우선순위 큐를 활용해 등장 횟...
문제 링크 1. 아이디어 str1 안에 str2가 포함됐는지 판단하는 문제로 언어별 내장 함수를 사용하면 간단하게 해결할 수 있다. 2. 복잡도 시간복잡도 공간복잡도 $O(NM)$ $O(1)$ N = str1 길이, M = st...
문제 링크 1. 아이디어 문자열로 주어진 수식이 옳은지 틀린지 판단하는 문제로 X, 연산자, Y, Z를 파싱해낸 후 수식을 계산하면 된다. 2. 복잡도 시간복잡도 공간복잡도 $O(Q)$ $O(1)$ Q = quiz 길이(퀴즈 개...