본문 바로가기

분류 전체보기

(81)
[프로그래머스] 코테연습 - 성격 유형 검사하기 (lv.1) - 내 방법 풀이 초이스배열을 순회하며, 유형당 점수를 줄 생각을 했다. 점수는 Map을 사용할까 하다가, 배열로 저장하는 방법을 선택했다. survey를 보며, 동의/비동의를 결정하여 점수를 더해주기 위해, checkType으로 리턴한 String의 charAt메서드로 점수를 더해줄 유형을 찾았다. 이후 점수를 비교해서 answer에 더해주는 식. class Solution { public String solution(String[] survey, int[] choices) { String answer = ""; int[] typeScore = new int[8]; // 초이스 배열 순회, 숫자에 따라 성격유형당 점수 증가. // 성격유형은 어떻게? 일반 배열로 하자. {R, T, F, C, M, J,..
[프로그래머스] 코테연습 - 튜플(lv.2) - 내 방법 풀이 (https://deokkk9.tistory.com/48) 문제를 이해하는 것부터 어려웠고, 질문하기에서 힌트를 얻었지만, 결국 다른 사람의 풀이를 참고하게 되었다. HashMap을 사용하여, 튜플배열에 등장하는 a1부터 an까지 구해 answer배열에 넣어주려고 했지만, Hashmap에서 value 기준으로 key를 정렬 할 때 오류가 낫고, 문자열 다루는 것이 매끄럽게 되지 않았다. 스트림과 람다식에 익숙해질 필요를 느꼈다. 잘 다룰수록, 필요한 부분에서 깔끔한 코드를 가져올 수 있는거 같다. import java.util.*; class Solution { public int[] solution(String s) { int[] answer = {}; s = s.replaceAll(..
23년 코테 문제 회고 프로그래머스에서 회고를 위해 23년 통계를 내주었다. 6월말부터 블로그를 만들고 학습기록을 했지만, 여전히 만족스럽지 못한 결과인거 같다. 7~12월까지 1일1커밋으로 코딩테스트 문제를 푸는 걸 목표로 했고, 갯수는 어느정도 비슷해진 거 같다. 계속해서 풀다보니 이제는 간단한 문제는 바로 풀이방법이 보이지만 아직 lv2는 살짝 어려운 수준인,... 24년에는 더 빠르게 실력이 성장될 수 있도록 더 열심히 해보자.!
[프로그래머스] 코테연습 - 신고 결과 받기 - 내 방법 풀이 처음 시간 초과가 난 코드이다. 신고 당한 횟수가 k번 이상인 유저의 신고자들의 메일을 보내는 것이, 정말 헷갈렸다. 어떻게 구현해야 할 지 모르겠어서 생각나는데로 hashSet을 순회하며 answer[idx]를 증가시켰지만 3 9 10 11 14 20 21번 총 6개의 케이스에서 시간 초과가 되었다. import java.util.*; class Solution { public int[] solution(String[] id_list, String[] report, int k) { int[] answer = new int[id_list.length]; Set hashSet = new HashSet(); for (String S : report) { hashSet.add(S); } Ha..
[프로그래머스] 코테연습 - 스킬트리 - 내 방법 풀이 처음에 인덱스를 비교하여 풀 생각을 하였다. 필수 스킬트리를 따라 인덱스가 주어지므로, skill_trees를 순회하며 각 스킬의 인덱스와 skill의 인덱스를 비교하려고 했지만 앞선 스킬중에 무관한 스킬이 포함되어 있을 때 답을 낼 수가 없기 때문에 다른 적용을 찾아야 했다. 따라서 replaceAll과 정규식을 활용하여 필수 스킬 외에 상관없는 스킬을 제거하고, 남은 skill_tree와 skill의 인덱스를 비교하며, 해당 스킬이 skill의 인덱스와 같지 않다면, 제대로 스킬트리를 배우지 못한 것이므로 answer를 증가시키지 않았다. class Solution { public int solution(String skill, String[] skill_trees) { int an..
[프로그래머스] 코테연습 - PCCE 기출문제 10번 / 데이터 분석 - 내 방법 풀이 스위치문을 최근에 많이 사용한다. 정렬기준은 총 2가지(String ext, String sort_by)가 나오므로, 정렬기준의 인덱스를 주어진 자료의 인덱스로 반환하는 메서드를 만들었고, 그것에 따라 먼저 ext가 val_ext보다 작은 것을 dataList에 추가한다. 이후 다시 sB메서드를 사용해서 정렬기준 index를 구한 뒤 Comparator.sort를 통해 오름차순으로 정리해주었다. import java.util.*; class Solution { public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) { List dataList = new ArrayList(); for (int [] dt..
[1212] 자바 스프링 - Spring MVC #Spring MVC - Srping MVC란? Spring-webmvc 모듈. Spring-webmvc 모듈은 서블릿(Servlet) API를 기반으로 클라이언트의 요청을 처리하는 모듈이다. Spring Web MVC를 줄여 Spring MVC, 혹은 웹 프레임워크의 종류임을 나타내는 Spring MVC 프레임워크라고 부름. 더보기 - 서블릿 (Servlet Container) : 클라이언트의 요청을 처리하기 위해 규약에 맞춰 JAVA 코드로 작성한 클래스 파일. 이를 웹 애플리케이션으로 실행 하는 서블릿 컨테이너(Servlet Container)로 아파치 톰캣(Apache Tomcat)이 있음. - Model Spring MVC에서 M에 해당됨. Model은 웹 애플리케이션이 클라이언트의 요청을 처리..
[프로그래머스] 코테연습 - 크레인 인형뽑기 게임(lv.1) - 내 방법 풀이 예전에 이 문제를 읽고 풀 방법을 생각하다가 못 풀고 남겨남었었다. 오늘 다시 보니, 스택을 활용해서 푸는 문제였고 기초적인 문제.. 아직 나는 한참 멀었나보다. 처음에는 인형이 쌓여있는 한줄마다 stack을 생성해야 했는데, 그렇게 풀었으면 메모리사용이 너무 컸을 거 같다. 다행히 굳이 그렇게 풀지 않아도 되는 것을 발견해서 풀이 방향을 수정했다. moves의 숫자에 해당하는 줄을 위에서부터 이차배열을 내려가면서 조회하고, 0은 패스. 숫자는 스택에 넣어주며 같은 인형인지 확인하여 인형을 삭제한다. 스택은 인형을 검사할 1개면 충분했고, 나머지는 반복문과 조건문으로 푸는 간단한 문제였다. import java.util.*; class Solution { public int soluti..
[프로그래머스] 코테연습 - 오픈채팅방(lv.2) - 내 방법 풀이 문제를 읽고, Id값과 닉네임을 보고, HashMap을 사용하면 되겠다는 생각이 들었다. 먼저 record를 읽으면서 유저 아디와 닉네임을 (key,value) 값으로 저장하되 맨 앞 단어가 Enter와 Change일 경우에 add하는 조건을 걸었다. 왜나하면 Leave는 아이디 값만 가지고 있어 닉네임 값이 없기 때문이었다. 위의 과정을 통해 최종 변경된 값만 가지고 있는 고유ID와 닉네임 Map을 얻게 되었고, 다시 한 번 record를 조회하면서 첫 단어를 switch문으로 가져와서 각 경우에 맞는 메시지를 저장하도록 코드를 구성했다. 최종변경된 메시지만 출력하면 되므로 복잡한 과정없이 2번의 record 조회로 문제를 풀 수 있었다. 효율성 측면에서도 record의 최대 길이 *..
[1208] 자바 스프링 - Spring Framework #Framework - Framework란? ▪ Frame의 뜻에서 알 수 있듯이 프로그래밍에서 Frame 역시 개발에 필요한 틀, 외형적 구조를 제공해주는 의미. ▪ 자바에서 Framework로 제공되는 예시로 Collections Framework가 있다. Collections Framework에서는 자바에서 사용되는 Map, Set, List 등의 자료구조를 미리 저장해 놓았다가 제공한다. 다시 말해 Colleciotns은 자바의 인터페이스(Interface) 클래스는 추상 메서드만 정의되어 있는 뼈대만 갖춘 클래스인 Map, Set, List 같은 인터페이스와 그 인터페이스들을 구현한 구현체들의 지밥과 같다. ▪ 정리하자면, Framework는 프로그래밍을 하기 위한 틀이나 구조를 제공하는 역할을..