TIL (2021.12.21)

ay.zip·2021년 12월 21일
0

TIL

목록 보기
5/47
post-thumbnail

Contains Duplicate <- 이 문제 풀면서 알게 된 것
HashSet
set의 성질을 그대로 상속 받음. 중복을 자동으로 제거 해줌.

HashSet<Integer> set1 = new HashSet<Integer>();

set1.add(1); 값 추가
만약에 입력되는 값이 내부에 존재하지 않는다면 저장,
존재한다면 false를 리턴
set1.remove(1) 1 제거
set1.clear() 모든 값 제거 
Iterator iter = set1.iterator();
while(iter.hasNext())

(1) HashSet 이용
class Solution {
    public boolean containsDuplicate(int[] nums) {
        if(nums==null || nums.length==0)
            return false;
        HashSet<Integer> set = new HashSet<Integer>();
        for(int elem : nums){
            if(!set.add(elem)){
                return true;
            }
        }
        return false;
    }
}

(2) 
class Solution {
    public boolean containsDuplicate(int[] nums) {
        if(nums==null || nums.length==0)
            return false;
        
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int i=0;i<nums.length;i++){
            map.put(nums[i],map.getOrDefault(nums[i],0)+1);
        }
        boolean flag = true;
        for(int key : map.keySet()){
            if(map.get(key)>=2){
                flag=true;
                break;
            }else{
                flag=false;
            }
        }
        return flag;
    }
}

Capitalize
a short sentence -> A Short Sentence

1. 첫 글자는 따로 처리 let word = str[0].toUpperCase();
2. 다음부터는 앞에 띄어쓰기 되어있으면 Capitalize
for(let i =1;i<str.length;i++){
  if(str[i-1]==" "){
    word+=str[i].toUpperCase();
  }else{
    word+=str[i]
  }

Anagram
정규식 사용법 RegExp

1. replace를 사용해서 띄어쓰기, 느낌표등을 없앰 
  -> word.replace(/[^\w]/g,"") ->!혹은space ""으로 바꿔줌
2. 모두 toLowerCase()해주고
3. 다 나눠주고 split('')
4. sort해서 순서 바꾸고
5. join해서 한 문장으로 다시 만들어주기
=> 이렇게 했을 때 같으면 anagram 아니면 false

Chunk
배열을 크기 만큼 짜르기
예를 들어, arr=[1,2,3,4,5] 숫자=2 => [[1,2],[3,4],[5]] 이런식으로

1. 답을 넣을 배열을 만들기
2. slice(시작,)
array.slice(index,index+size) -> index는 0에서 시작, size는 2
그리고 index+=size -> 다시 처음으로 

0개의 댓글

관련 채용 정보