JavaScript 자바스크립트 코딩테스트 03
많은 스타트업에서 자주 다루는 코딩테스트 문제를 가져왔습니다.
먼저 첫 문제부터 시작하겠습니다
#136. Single Number
/**
* @param {number[]} nums
* @return {number}
*/
var
singleNumber = function(nums) {return nums.reduce((prev, curr)
=> prev ^ curr, 0);};
class Solution {
public int singleNumber (int[] nums) {
int result = 0;
for(int i : nums) {
result ^= i;
}
return result;
}
}
문제해설)
we use bitwise XOR to solve this problem :
we have to know the bitwise XOR
- 0 ^ N = N
- N ^ N = 0
#75. Sort Colors
문제 설명)
Eng] Given an array with n objects colored red, white or blue, sort them in-place so that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
Note: You are not suppose to use the library's sort function for this problem.
빨간색, 흰색 또는 파란색으로 n 개의 객체가있는 배열이 있으면 같은 색상의 객체가 인접 해 있고 색상이 빨강, 흰색 및 파랑 순서로 정렬되도록 제자리에 정렬하십시오. 여기서는 정수 0, 1 및 2를 사용하여 각각 빨간색, 흰색 및 파란색을 나타냅니다.
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var sortColors = function(nums) {
var low = 0,
high = nums.length - 1,
temp;
for (var i = 0; i <= high; ) {
if (nums[i] === 0) {
temp = nums[i];
nums[i] = nums[low];
nums[low] = temp;
i++;
low++;
} else if (nums[i] == 2) {
temp = nums[i];
nums[i] = nums[high];
nums[high] = temp;
high--;
} else {
i++;
}
}
};
문제 해설)
0부터 n-1까지의 index까지 순차적으로 검토하면서 '0'값을 가질 경우 배열의 맨처음으로 보내주면서 다음에 또 '0'을 발견할 경우 low값을 1씩 올려주면서 순차적으로 맨처음부터 차근차근 '0'값을 넣어준다.
반대로 '2'의 값을 가질경우 high변수를 선언한 후 n-1부터 순차적으로 '2'값을 넣어주면 자동으로 '1'값이 채워지면서 해결이 된다.
다음에는 더 퀄리티 높은 문제로 자바스크립트를 대비한 코딩 문제를 들고 오겠습니다.
감사합니다.
0 댓글