목록개발공부 (26)
발전하는 개발자가 되자
프로그래머스 알고리즘 (java) 모의고사 프로그래머스 (모의고사) 코드 리뷰 조건 각각 찍는 패턴이 있다. 결과는 가장 많이 맞은 수포자들의 번호를 리턴한다. 저는 그냥 반복문을 사용해서 다 찾아보면 될거 같았습니다. public int[] solution(int[] answers) { int[] player1 = {1, 2, 3, 4, 5};//5 int[] player2 = {2, 1, 2, 3, 2, 4, 2, 5};// 8 int[] player3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};// 10 int[] answer = new int[]{0,0,0}; int maxNum = 0; List countNum = new ArrayList(); for (int i = 0; i <..
프로세스와 스레드 프로세스 란? 스레드 란? 멀티 프로세스, 멀티 스레드 프로세스 란? 실행중인 프로그램의 인스턴스를 프로세스라 한다. 프로그램과 프로세스의 차이 프로그램은 저장소에서 동작을 기다리는 코드 뭉치 프로그램은 생명이 없다. 프로그램이 생명을 부여받은게 프로세스 프로세스의 구조 Code 함수, 제어문, 상수 Data 초기화된 전역 변수 Bss 초기화 안된 전역 변수 Heap 동적할당 개발자가 인위적으로 할당한 값 Stack 지역변수, 매개변수 프로세스의 특징 Code, Data, Stack, Heap의 구조로 구현되어 있다. cpu는 한번에 하나의 프로세스만 구동할 수 있다. 하지만 Context Switching을 통해 멀티프로세스가 가능하다. 프로세스는 다른 프로세스의 메모리에 직접 접근할..
프로그래머스 알고리즘 (java) 완주하지 못한 선수 프로그래머스 (완주하지 못한 선수) 코드 리뷰 맨처음 문제를 보고 참가선수를 리스트에 넣고 완주한 사람 다 리무브로 지워 마지막 남는 선수를 리턴시켰습니다.. 그런데 효율성 태스트에서 통과가 안됬습니다. 그후 고민하다 둘다 리스트에 담고 sort해서 인덱스 끼리 비교 다른 string 일 때 return 시켜 해결했습니다. public String solution(String[] participant, String[] completion) { String answer = ""; List runUsers = new ArrayList(Arrays.asList(participant)); List finishUsers = new ArrayList(Arrays..
HashMap 이란 map 인터페이스 한 종류 hashing 을 사용하기 때문에 데이터 검색에 빠르다. key 와 value로 이루어져 있다. HashMap 메소드 정리 나중에 새롭게 알게된거 추가하자. public int size() map 의 size 출력 public boolean isEmpty() map 사이즈가 0 인지 boolean 값 return public boolean containsKey(Object key) key 값을 map 이 가지고 있나 확인 public V put(K key, V value) key 와 value map에 put public V remove(Object key) map 에서 제거 public V getOrDefault(Object key, V defaultVal..
오늘의 공부 20190212 스컬과 블랙잭 콘솔 게임 구현 프로그래머스 알고리즘 하나 해결 블랙잭 프로젝트 java 를 이용한 웹 서비스 블랙잭 게임 구현 오늘 한 것 a 가 1혹은 11 로 전환구현 기타 잔기능과 리팩토링, TDD 구현 ToDo list 유저가 버스트 나올시 딜러가 승리하는 조건 구현 유저 블랙잭 나올시 1.5배 받고 게임종료구현 칩 관리 구현 구현하면서 어려웠던 점 Card 객체를 Enum과 vo 로 구현했는데 특정상황에서 A값의 변동이 생기는데 이것의 예외처리를 어떻게 구현할지 고민을 많이했다. 결국 Card에 a의 예외상황을 isOneA 란 속성을 boolen 값으로 부여해 isOneA 이 true 일 때는 1 나머지는 enum의 number를 리턴하게 했다. 더 나은 방법을 찾을..
프로그래머스 알고리즘 (java) 베스트앨범 프로그래머스 (베스트앨범) 코드 리뷰 저는 먼저 음악으로 클래스를 나누고 장르로 그 클래스들을 감싸서 내림차순으로 정렬 시켰습니다. 객체를 두개로 나누고 override 메소드까지 구현하니 조금 코드 길이가 길어진거 같습니다. import java.util.*; public class BestAlbum { public int[] solution(String[] genres, int[] plays) { int[] answer = {}; List answerList = new ArrayList(); List genresList = new ArrayList(); for (int i = 0; i < genres.length; i++) { if (!genresList...
프로그래머스 알고리즘 (java) 위장 프로그래머스 (위장) 내가 작성한 코드 set 으로 카탈로그를 뽑아내고 카탈로그별 숫자를 구해 각각 곱해줘 경우의 수를 구했다. set을 안쓰고 리스트를 써도 될 것 같다. public class Camouflage { public int solution(String[][] clothes) { int answer = 1; Set category = new HashSet(); for (String[] clothe : clothes) { //카태고리가 없으면 카태고리 생성 if (!category.contains(new Category(clothe[1]))) { category.add(new Category(clothe[1])); } else { // 있으면 그 카태고..
프로그래머스 알고리즘 (java) 가장 큰 수 프로그레머스 가장 큰 수 내가 작성한 코드 문자열로 변환하고 sort 해서 다 더해 출력함 다른 사람들도 비슷한 방식으로 푼거 같다. public String solution(int[] numbers) { String answer = ""; List stringList = new ArrayList(); for (int anInt : numbers) { stringList.add(String.valueOf(anInt)); } stringList.sort(((o1, o2) -> (o2 + o1).compareTo(o1 + o2))); for (String s : stringList) { answer += s; } return answer.charAt(0) == ..