Header

[ 코딩테스트 JS ] 자바스크립트 코테 03 ( JavaScript )

JavaScript 자바스크립트 코딩테스트 03


많은 스타트업에서 자주 다루는 코딩테스트 문제를 가져왔습니다.



먼저 첫 문제부터 시작하겠습니다


#136. Single Number



문제 설명) 정수로 이루어진 비어있지 않은 배열이 주어졌을 경우, 모든 원소들은 원소를 제외하고 2번씩 나타난다. 한 개의 원소를 구하라.


코드풀이) JavaScript

/**



 * @param {number[]} nums



 * @return {number}



 */



var
singleNumber = function(nums) {



    return nums.reduce((prev, curr)
=> prev ^ curr, 0);



};







코드풀이) JAVA

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

 

  1. 0 ^ N = N
  2. 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 댓글