전체 카테고리361 [알고리즘] 프로그래머스 - 스킬트리 1. 문제 2. 나의 풀이 배울 스킬트리(skill_trees)와 선행 스킬 문자열(skill)이 주어졌을 때 해당 스킬 트리를 몇 개를 배울 수 있는지 반환하는 문제다. 코드를 보면 크게 어렵지 않다는 것을 알 수 있다. class Solution { private boolean[] visit; public int solution(String skill, String[] skill_trees) { int answer = 0; for(int i=0;i 2021. 3. 31. [알고리즘] 2018 카카오 블라인드 - 캐시 1. 문제 2. 나의 풀이 LRU 알고리즘을 이해하고 있으면 쉽게 풀 수 있는 문제이다. 캐시에 있으면 answer에 1을 더해주고, cache에 없으면 cache에 넣으면서 5를 더해준다. 여기서 주의해야할 점은 캐시에 있을 경우 해당 city를 cache Deque 맨앞으로 옮겨줘야한다는 것이다. 왜냐하면 가장 최근에 사용했기 때문이다. import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { Deque cache = new ArrayDeque(); int answer = 0; int len = cities.length; for(int i=0;i 2021. 3. 26. [알고리즘] 프로그래머스 - 순위 1. 문제 2. 나의 풀이 어떻게 풀어야할지 감을 못잡아서 여러 풀이 방법을 찾아 보았는데 플로이드-와샬 알고리즘을 사용해서 푸는 문제 였다. A가 B를 이기고 B가 C를 이길 경우 A가 C를 이긴다는 형태로 접근을 해야한다. 우선 그래프에서 입력으로 온 경기 결과를 입력해준다. 그리고 플로이드-와샬 알고리즘을 이용하여 하나의 노드에서 다른 노드로 갈 수 있는 경로가 있는지 파악한다. 만약 a노드에서 b노드로 갈 수 있다면 a는 b를 이긴 것이다. 역으로 b는 a한테 진 것이다. 플로이드-와샬 알고리즘을 수행하고 나면 graph에는 각 선수끼리 싸웠을 때 누가 이기고 졌는지의 결과가 저장되있거나, graph[i][j] = false, graph[j]i[] = false 라면 결과를 알 수 없는 경우 이다.. 2021. 3. 24. [Effective Java] 아이템26 로 타입은 사용하지 말라 ■ 로(raw) 타입이란? 로 타입이란 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않은 때를 말한다. 예를 들어서 List의 로 타입은 List다. 제네릭 도입 이후에도 로 타입을 지원하는 이유는 기존 자바 버전과의 호환성 때문이다. 아래 컬렉션 예제 코드에서처럼 로 타입을 사용하여 객체를 저장 하면 컴파일 할 때는 에러가 발생하지 않는다. 그리고 런타임 때 저장된 객체를 꺼내면서 오류가 발생한다. 오류는 컴파일 시점에 발견하는 것이 좋다. //로 타입으로 인스턴스 저장 private final Collection stamps = ...; stamps.add(new Coin()); //데이터 꺼낼 때 오류 발생 for(Iterator i = stamps.iterator(); i.hasNext();){.. 2021. 3. 8. 코딩 시간 기록 프로젝트 최근 테슬라 CEO 엘론 머스크의 인터뷰 중 인생에서 가장 큰 도전과제가 무엇이었냐는 질문이 있었습니다. 엘론 머스크의 경우 어떻게 시간을 활용해야 하는지가 도전 과제라고 말을 하였습니다. 엘론 머스크의 경우 경영하는 회사가 워낙 많다 보니까 요일별로 나눠서 회사일을 하였습니다. 저 또한 평소에 낭비하는 시간일 정확히 얼마나 되는지 궁금해서 제가 공부를 하는 시간과 노는 시간을 나눠서 기록해보기로 했습니다. 사이트 주소는 여기를 참고해주세요 devcrews.io/ 개발자를 위한 공모전/취업정보 알림 서비스 개발자를 위한 공모전/취업정보 무료 알림 서비스 입니다. 개발자들을 위한 다양한 유용한 사이트와 정보 들을 모아서 보여주고 있습니다. devcrews.io 기존에 부트스트랩과 스프링부트를 사용해서 만들.. 2021. 3. 8. [Effective Java] 아이템25 톱레밸 클래스는 한 파일에 하나만 담으라 ■ 하나의 java 파일에는 하나의 톱레밸 class를 생성하자 소스 파일 하나에 여러 톱레밸 클래스를 선언하더라도 자바 컴파일러는 불평하지 않는다. 하지만 이렇게 할 경우 심각한 위험을 감수해야한다. 패키지 트리구조로 파악되지 않는 클래스가 생긴다. 수동 컴파일 시 컴파일하는 자바 파일의 순서에 따라 상이한 동작을 초래한다. 예를 들어 다음 코드를 살펴보자 // 코드 25-1 두 클래스가 한 파일(Utensil.java)에 정의되었다. - 따라 하지 말 것! (150쪽) class Utensil { static final String NAME = "pan"; } class Dessert { static final String NAME = "cake"; } // 코드 25-2 두 클래스가 한 파일(Des.. 2021. 3. 2. 이전 1 ··· 14 15 16 17 18 19 20 ··· 61 다음