자바 초급문제로 맨땅에 해딩하기

자바 Level 2 문제, 3-1. 기능개발 진행 2일차

Jungsoomin :) 2020. 4. 22. 22:56

프로그래머스(https://programmers.co.kr/learn/courses/30/lessons/42586)

자바 Level 2 문제의 기능개발 이다.

 

오늘은 쉬어보기로 한 날이었다. 인생영화 기획전을 목록을 보며 영화 예매를 해놓고 시간이 남아서 뭐할까 싶다가 카페에 자리를 잡고 앉아 코드타이핑을 시작했다. 취미 같다고 느끼고는 한다. 시작하면 놓을 수가 없고 시간가는 줄을 모르게 된다. 오늘도 타이핑 보다는 공책에 적는 시간이 더 많았던 것이 기억이난다.  메인 메서드를 이용해보다 보니까 인터넷 유무에 상관없이 코딩 할 수 있다는 점이 좋다고 느꼈다.

 

이리저리 머리를 싸매면서 했던 것 같다. 남들에게 집중하던 스스로가 이제 자신이 좋아하는 일에 정신이 팔려버리는게 생소하고 신기했다. 계속 타이핑하게 되었는데 밥먹을때는 공책으로, 입장하기 전에는 홀에서 노트북을 꺼내놓고 타이핑만 하다 영화를 보러 들어갔다.

돌아와서 가족과 이야기를 나누며 Stack 으로 접근할 수 있고 스케쥴링의 축소판이고 간단한 버전이고 유사하다는 설명을 들으면서 Thread에 대한 이야기를 나누었다. priority와 그에 따른 Thread 스케쥴링을 듣고나서야 스스로 "아, 그런거구나!" 하고 생각했다. 영화를 보기위해 대기하면서 식당에서 밥을 먹으면서도 손 노트가 놓아지지를 않았다. 그 과정에서 'speeds라는 배열도 없어져줘야 Exception이 안나겠구나.' 하고 생각이 들었다. 그리고 기제한 클래스 외에 또 클래스를 만들어 타이핑 하는 중이다. "내일 맞출 것만 같아!"하고서 '해봐야지..'하며 좋아하고 있어서 기대가 되고 있다.

그런데 어깨가..음, 병원에 조만간 가야할 것 같아 아쉽다.   

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package programmers_기능개발;
 
import java.util.ArrayList;
import java.util.List;
 
public class subClass3 {
    public int[] solution (int[] progresses, int[] speeds) {
        int[] answer = {};
        List<Integer> list = new ArrayList<Integer>();
        List<Integer> answerList = new ArrayList<Integer>();
        
        
        for(int a  : progresses ) {
            list.add(a);
        }
        //list 의 첫값이 들어가지 않았음.
        
        while(!(list.isEmpty())) {
            for(int i=0; i<list.size();i++) {
                 int plus = list.get(i);
                 Integer plusResult = plus +speeds[i];
                 list.set(i, plusResult);//<인덱스 교체 메서드 필요
                //if(list.get(i).intValue() >=100) { list.set(i, 100);}
                }//여기까지는 문제가 없음!
        
            int check =0;//<<에러 시작
            if (list.get(0==100) {//<첫수가 100 이라면
                check++; list.remove(0);
                if(list.get(1)==100) {//다음 수도 100이라면
                    for(int i=1;i<list.size();i++) {//검사시작
                        if(list.get(i) == 100) {check++; list.remove(i);}//증가 시기키고 
                        else {break;}
                    }//<여기까지 for 문 로직종료
                }else {}//<<다음 수도 100이라면 종료
                answerList.add(check);//<여기가 제일 적당함
            }else {}//<첫수가 100 이 아니라면 다시 돌아야함 break 를 쓸필요 가 있을까? break;?
            
            
        }
        
        
        answer = new int[answerList.size()];
        System.out.println();
        for(int i=0; i<answerList.size();i++) {
            answer[i] = answerList.get(i);
        }
        
        
        return answer;
    }
}
 
cs