Search

코딩테스트 준비문제 (기타)

Number of 1 Bits (비트 1의 개수 세기)

문제 설명:
양의 정수 n이 주어졌을 때,
이 숫자의 이진수 표현에서 1로 설정된 비트(set bit)의 개수, 즉 해밍 무게(Hamming weight) 를 반환하는 함수를 작성하세요.

예제:

예시 1
입력: n = 11
이진수: 1011
출력: 3
설명: 1이 세 번 등장하므로 결과는 3.
예시 2
입력: n = 128
이진수: 10000000
출력: 1
예시 3
입력: n = 2147483645
이진수: 1111111111111111111111111111101
출력: 30

제약 조건:

1 <= n <= 2³¹ - 1

Hamming Distance (해밍 거리)

문제 설명:

*해밍 거리(Hamming Distance)**란, 두 정수의 이진수 표현에서 각 자리(bit)마다 서로 다른 위치의 수를 세는 것입니다.
즉, 같은 자리의 비트가 다르면 1씩 카운트합니다.

입력:

두 개의 정수 xy가 주어질 때,
이 두 수의 해밍 거리를 반환하세요.

예시:

예제 1:

입력: x = 1, y = 4
이진수:
1 → 0001 4 → 0100 ↑ ↑
Plain Text
복사
출력: 2 (서로 다른 비트가 2개)

예제 2:

입력: x = 3, y = 1
이진수:
3 → 0011 1 → 0001 ↑
Plain Text
복사
출력: 1 (서로 다른 비트가 1개)

제약 조건:

0 <= x, y <= 2^31 - 1 (32비트 정수 범위)

Reverse Bits (비트 뒤집기)

문제 설명:

32비트의 부호 없는 정수 n 이 주어졌을 때,
이 수의 비트 순서를 반대로 뒤집은 값을 반환하세요.
예를 들어:
n = 00000010100101000001111010011100 (이진수) →
반대로: 00111001011110000010100101000000
→ 결과: 964176192

주의사항:

Java처럼 부호 없는 타입이 없는 언어도 있지만,
내부적으로 2진수 표현은 동일하기 때문에 상관없습니다.
문제는 항상 32비트 정수라고 보장합니다.

예제:

예제 1:

입력: 00000010100101000001111010011100 출력: 00111001011110000010100101000000 (964176192)
Plain Text
복사

예제 2:

입력: 11111111111111111111111111111101 출력: 10111111111111111111111111111111 (3221225471)
Plain Text
복사

Pascal's Triangle (파스칼의 삼각형)

문제 설명:

정수 numRows가 주어졌을 때,
파스칼의 삼각형의 처음 numRows 행을 2차원 배열 형태로 반환하세요.

파스칼 삼각형이란?

삼각형의 각 숫자는 자신의 바로 윗줄에서 왼쪽과 오른쪽 값의 합입니다.
맨 양쪽은 항상 1
중간은 윗줄의 i-1번째 + i번째

입력 / 출력 예시:

예제 1:

입력: numRows = 5 출력: [[1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]
Plain Text
복사

예제 2:

입력: numRows = 1 출력: [[1]]
Plain Text
복사

제약 조건:

1 <= numRows <= 30

Valid Parentheses (유효한 괄호)

문제 설명:

문자열 s가 주어질 때,
문자열이 유효한 괄호 문자열인지 여부를 판별하시오.
s는 오직 '(', ')', '{', '}', '[', ']' 로만 구성되어 있습니다.

유효한 괄호의 조건:

1.
열린 괄호는 반드시 같은 종류의 닫힌 괄호로 닫혀야 한다.
2.
괄호는 올바른 순서로 닫혀야 한다.
3.
닫는 괄호마다 짝이 되는 여는 괄호가 반드시 있어야 한다.

예시:

Input: s = "()" Output: true Input: s = "()[]{}" Output: true Input: s = "(]" Output: false Input: s = "([])" Output: true
Plain Text
복사

시간 및 공간 복잡도:

시간 복잡도: O(n)
공간 복잡도: O(n) (스택 사용)

Missing Number (빠진 숫자 찾기)

문제 설명:

0부터 n까지의 숫자 중 하나만 빠진 배열 nums가 주어집니다.
이 배열에서 빠진 숫자를 찾아 반환하세요.
nums.length == n
배열의 모든 값은 고유(unique) 합니다.
모든 값은 범위 [0, n]에 포함됩니다.
Tip : 등차수열의 합을 이용 int expectedSum = n * (n + 1) / 2; 등차수열의 합 공식 증명 ( 한번 읽어보기 )

예시:

Input: nums = [3,0,1] Output: 2 Input: nums = [0,1] Output: 2 Input: nums = [9,6,4,2,3,5,7,0,1] Output: 8
Plain Text
복사