2021.04.03 TIL

Sorbet·2021년 4월 3일
0

til

목록 보기
9/20

"모" 사이트 코테 봤는데

  • 1솔뿐이 못했다
  • 시험 종료되고 나서 결국 삽질하던 버그 잡아서 해결했는데, 아이고 의미없다.
  • 그럼에도 불구하고, 코쿼 졸업할때까지는 코테는 낮은 우선순위이고, 매주 스터디만꾸준히 참여할 생각이다. 지금은 스프링백엔드 학습이 우선순위이다
  • 앞으로 SQL 한문제씩 꾸준하게 풀어나갈 계획이다!
  • 주변에 좋은분들 잘하는 분들 보면서 많이 배우고 있다.
  • 같은조라서 정규 학습시간에 만나는 분들 뿐만 아니라, 따로 스터디 하는 부분들도 정말 좋다.
    • 비슷한 목표를 가진 비슷한 실력(가끔 엄청 뛰어난분들도 계신다)인 사람들을 모아서 하루에 8시간씩 내가 필요한 지식을 습득해내가는 시간이라니.. 정말 이보다 더 좋은 학습환경은 없을듯..
  • 역시 학습에는 주변 환경이 엄청난 영향을 미친다. 코쿼 듣길 정말 잘했다!!
  • 스프링 프로젝트도 개인적으로는 충분히 도전적인 과제였지만, 앞으로 남은 절반 3개월의 기간도 전혀 만만하지는 않을꺼같다.
    • 어려워도 힘들어도 끝까지! 포기하지않고..!

변명은 아닙니다만...

  • 오늘 분명 밤11시에 잘수 있었는데, 마음이 답답한일이 있어서 산책 한바퀴 돌고왔다.
    • 역시 속상한 일 있을때는 그냥 걷거나 운동하는게 최고의 솔루션이다..!
  • 비가 그치지 않았지만 못걸을 정도의 가랑비? 비도 아니고 그냥 미스트 수준이여서 유쾌하게 산책할 수 있었다...! 사람이 거의 없어서 쾌적한건 덤
  • 이런저런 생각을 많이 했지만, 해결책은 돌고돌아서 결국 실력기르고, 멘탈관리, 몸관리 잘하기로 귀결되는듯 하다.

모두가 알지만 아무도 인지하지 못하는 그것..

  • 내가 해야할일은 내가 제일 잘 알고 있다.
  • 졸라 꾸준히 열심히 하는 방법이 유일한 길
  • 남들이랑 비교하지말고 내 과거랑만 비교하자 Git처럼...(시기적절한 리뷰는 당연히 수용해야지)

내일(일)할일

  • 카페/스카 가서
    • 영한님 강의 완강때리기
    • 백기선님 스터디 미리 진도 빼놓기
    • SQL 문풀/ 데이터베이스 공부
    • (리뷰가 돌아오면) 미션6 진행
    • 운동

오늘의 코테 소스코드

  • 1번
public class Solution {
    boolean[] chickenwiner = new boolean[47];

    public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = new int[2];
        for(int num : win_nums) {
            chickenwiner[num] = true;
        }

        answer[1] = getWorst(lottos);
        answer[0] = getBest(lottos);
        return answer;
    }

    private int getWorst(int[] lottos) {
        int cnt = 0;
        for(int num : lottos) {
            if(chickenwiner[num]) {
                cnt++;
            }
        }
        return hit2rank(cnt);
    }
    private int getWN(int[] lottos) {
        int cnt = 0;
        for(int num : lottos) {
            if(chickenwiner[num]) {
                cnt++;
            }
        }
        return cnt;
    }
    private int getBest(int[] lottos) {
        int nZero = getNZ(lottos);
        return hit2rank(nZero+getWN(lottos));
    }

    private int getNZ(int[] lottos) {
        int ret=0;
        for(int num : lottos) {
            if(num==0) {
                ret++;
            }
        }
        return ret;
    }

    private int hit2rank(int hitNums) {
        if(hitNums == 6) {
            return 1;
        }
        else if(hitNums == 5) {
            return 2;
        }
        else if(hitNums == 4) {
            return 3;
        }
        else if(hitNums == 3) {
            return 4;
        }
        else if(hitNums == 2) {
            return 5;
        }
        else {
            return 6;
        }

    }

    public static void main(String[] args) {
        Solution s = new Solution();
        s.tester(new int[] {44, 1, 0, 0, 31, 25},new int[] {31, 10, 45, 1, 6, 19},	new int[] {3, 5},s);
        /*
        [44, 1, 0, 0, 31, 25]	[31, 10, 45, 1, 6, 19]	[3, 5]
        [0, 0, 0, 0, 0, 0]	[38, 19, 20, 40, 15, 25]	[1, 6]
        [45, 4, 35, 20, 3, 9]	[20, 9, 3, 45, 4, 35]	[1, 1]
         */
    }

    private void tester(int[] lot, int[] win, int[] ans,Solution s) {
        int[] ret = s.solution(lot,win);
        for(int i =0 ; i<ans.length ; i++) {
            if(ans[i] != ret[i]) {
                System.out.println("NG");
                return;
            }
        }
        System.out.println("OK");
    }
}
  • 2번
import java.util.LinkedList;
import java.util.Queue;

class Solution {

    int[][] map = new int[7][7];

    public int[] solution(int rows, int columns, int[][] queries) {
        int[] answer = new int[queries.length];


        for(int x=1 ; x<=6 ; x++) {
            for(int y=1 ; y<=6 ; y++) {
                map[y][x] = (x-1)+(y-1)*6+1;
            }
        }

        for(int i=0 ; i<queries.length ; i++) {
            answer[i] = rotAndMini(queries[i]);
        }

        return answer;
    }

    private int rotAndMini(int[] query) {
        int mini = 99999;
        //rotator
        Queue<codi> q = new LinkedList<>();

        for(int i=query[1] ; i<query[3] ; i++) {
            q.add(new codi(query[0],i));
        }

        for(int i=query[0] ; i<query[2] ; i++) {
            q.add(new codi(i,query[3]));
        }

        for (int i=query[3] ; i>query[1] ; i--) {
            q.add(new codi(query[2],i));
        }

        for(int i=query[2] ; i>query[0] ; i--) {
            q.add(new codi(i,query[1]));
        }


        int front = 0;

        int feed= 0; //= map[query[0]][query[1]];


        codi start = q.peek();
        int st = 0;
        while (!q.isEmpty()) {
            codi cur = q.poll();


            front = map[cur.getY()][cur.getX()];;

            map[cur.getY()][cur.getX()] = feed;
            feed = front;
            st = front;
            mini = Math.min(mini,feed);

        }
        map[start.getY()][start.getX()] = st;
        return mini;
    }


    public static void main(String[] args) {
        Solution s = new Solution();
        s.tester(6,6,new int[][] {{2,2,5,4},{3,3,6,6},{5,1,6,3}},new int[] {8,10,25},s);
        /*
         */
    }

    private void tester(int r, int c, int[][] q,int[]ans, Solution s) {
        int[] ret = s.solution(r,c,q);
        for(int i =0 ; i<ans.length ; i++) {
            if(ans[i] != ret[i]) {
                System.out.println("NG");
                return;
            }
        }
        System.out.println("OK");
    }

    private class codi {
        private int x;
        private int y;
        private codi() {

        }
        public codi(int y, int x) {
            this.x = x;
            this.y = y;
        }

        public int getX() {
            return x;
        }

        public void setX(int x) {
            this.x = x;
        }

        public int getY() {
            return y;
        }

        public void setY(int y) {
            this.y = y;
        }
    }
}


profile
Sorbet is good...!

0개의 댓글