TIL 20210116

Jean Deluge·2021년 1월 16일
0

TIL

목록 보기
6/19

1. 프로그래머스 코딩테스트 기능개발

  • 각각 기능이 완료되는 시각을 배열로 저장하고, 그 시간을 비교해서 하루에 기능을 배포되는 시간을 구했지만, 결과에서 필요한 배열요소 하나가 나타나지 않음. while 문의 조건을 잘못한 걸로 보임.
    마지막 요소를 구할때, first 에 마지막 값이 들었지만, time 배열에는 이미 배열요소가 존재하지 않았기 때문에 '내가 생각한' 마지막 반복이 이루어지지 않음.

    let first = time.shift()
    let deloyCount = 1;
    //[7 ,3, 5]
    while(time.length > 0 ){ //[5] 
        
        let next = time.shift()// 3, [5] // 
        
        if(first >= next){ //7 >=3 // 
            deloyCount++; // 2          
        }else{
            answer.push(deloyCount) 
            first = next;
            
            deloyCount = 1;
            
        }
        
    }

그래서 임시방편으로 while문을 대신 for문으로 내가 생각한 것만큼의 횟수로 반복하게 함.

let timeLen = time.length
let first =time.shift()
for(let i = 0 ; i < timeLen ; i++) { //[5] 
        
        let next = time.shift()// 3, [5] // 
        
        if(first >= next){ //7 >=3 // 
            deloyCount++; // 2          
        }else{
            answer.push(deloyCount) 
            first = next;
            
            deloyCount = 1;
            
        }

2. Do it 알고리즘 java

  • 확장 for 문
    • 장점: 배열의 길이를 조사하는 수고를 덜 수 있다. iterator와 같은 방법으로 스캔할 수 있다.
    • 인덱스 자체의 값이 필요하지 않으면 확장 for문이 적합.
    • 예시
 int[] a = [1, 2, 3]
 for (int i : a)
 	sum += i;
    
  • 데이터 검색에서 데이터 집합에 대한 검색에 효율적인 알고리즘이 있고, 데이터의 CRUD에 효율적인 알고리즘이 있기때문에 이를 종합적으로 평가하여 알고리즘을 선택해야한다.

  • 선형 검색 : 순차검색

  • 이진 검색 : 일정한 규칙이 있는 데이터에서 '아주 빠른 검색'

  • 해시법 : 추가 , 삭제가 일어나는 데이터에서 '아주 빠른 검색'

    • 체인법: 값은 해시 값의 데이터를 선형리스트로 연결
    • 오픈 주소법: 데이터를 위한 해시 값이 충돌할 때 재해시하는 방법

3. 개인 프로젝트

profile
node.js , rudyonrails개발자

0개의 댓글