• Home
  • About
    • Hooni photo

      Hooni

      Hooni coding

    • Learn More
    • Email
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

모각코 4주차 목표와 회고

13 Jul 2020

Reading time ~1 minute

4주차 (07월 13일)

목표

  • 2회차에 풀던 <배열> 알고리즘 문제 1개 풀기
  • <스택,큐> 자료구조 내용 복습하기
  • <스택,큐> 알고리즘 문제 2~3개 풀어보기

회고

  • 알고리즘 <스택> 문제 백준 10828번 (난이도 : 실버4)

image

해결 방법 : int형 배열을 생성해서 주어진 명령을 배열의 index를 이용해서 실행하도록 했다.

코드일부

 int[] arr = new int[number];
 int location = -1;		// 배열의 index위치
 
 String str;
 for(int i = 0; i < number; i++){
 	str = sc.nextLine();
    if(str.contains("push")){		// push가 입력되면 배열에 추가
    	String[] n = str.split(" ");
        location++;
        arr[location] = Integer.parseInt(n[1]);
    }
 }
  • 알고리즘 <큐> 문제 백준 1966번 (난이도 : 실버3)

image

해결 방법 : 맨 앞의 문서와 나머지 문서들의 중요도를 비교한 후 더 높은 중요도가 있을 경우 맨 앞의 문서를 맨 뒤로 보낸다. 맨 앞 문서의 중요도가 제일 높을 경우 맨 앞의 문서를 출력하고, count를 1 올린다.

코드일부

 int count = 1;
 loop:
 	while(!printer.isEmpty()){
    	document doc = printer.get(0);	// 맨 앞에 있는 문서
        
        for(int i = 1; j < printer.size(); j++){
        	if(doc.imp < printer.get(j).imp){	// 중요도가 높은 문서가 있을 경우
            	printer.remove(doc);	// 맨 앞의 문서 삭제
                printer.add(doc);		// 맨 앞의 문서를 맨 뒤로 보낸다.
                continue loop;
            }
        }
        
        if(doc.loc == loc){	// 구하고자 하는 위치의 문서일 경우
        	break;
        }
        else{
        	printer.remove(0);
            count++;
        }
    }
    System.out.println(count);
  • 스택 관련 한 문제는 풀다가 시간이 부족해서 다 풀지 못해서 다음 시간 전까지 풀어 봐야겠다.


Share Tweet +1