분류 전체보기

    프로그래머스 코딩테스트 스택/큐 기능개발 자바(java) 풀이

    프로그래머스 코딩테스트 스택/큐 기능개발 자바(java) 풀이

    아이디어 방향은 맞았고 문제도 풀었지만 효율성이 너무 낮게 나왔다. 좀 더 야무진 코딩을 해야 할 것 같다. import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { int len = progresses.length; int [] temp = new int[len]; Queue q = new LinkedList(); int max =0; int sum =0; for(int i=0; i

    프로그래머스 코딩테스트 연습 햄버거 만들기 자바(java) 풀이

    프로그래머스 코딩테스트 연습 햄버거 만들기 자바(java) 풀이

    Stack으로 접근하는 건 당연했지만 어떤 식으로 풀이해야 할지 못했다. Stack에 모두 넣어서 진행한다면 시간 초과가 나기 때문에 Stack에 넣어줄때마다 체크하는 게 더 빠르게 작동한다. Stack의 길이가 4이상일때 계속 1231이 있는지 체크해준다. 1231을 끝에서부터 체크하면 완벽하게 체크가 될지 의문이 있었지만 완벽하게 처리된다. 모르면 외워. class Solution { public int solution(int[] ingredient) { int[] stack = new int[ingredient.length]; int sp = 0; int answer = 0; for (int i : ingredient) { stack[sp++] = i; if (sp >= 4 && stack[sp -..

    프로그래머스 코딩테스트 연습 푸드 파이트 대회 자바(java) 풀이

    프로그래머스 코딩테스트 연습 푸드 파이트 대회 자바(java) 풀이

    String 양쪽에서 대칭에서 더해줄 때 answer = i + answer + i 기억하자 class Solution { public String solution(int[] food) { int sum=0; for(int i=0;i0){ if(food[i]%2!=0) food[i]=food[i]-1; } sum+=food[i]; } int [] size =new int[sum]; int plus=0; int minus=size.length-1; size[size.length/2]=-1; for(int i=1;i

    프로그래머스 코딩테스트 연습 LV1 2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천 자바(java) 풀이

    프로그래머스 코딩테스트 연습 LV1 2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천 자바(java) 풀이

    적절한 정규식 사용법만 알면 쉽게 풀 수 있는 문제 정규식 사용법을 다시한번 복습할 때 풀어보면 좋을 것 같다. class Solution { public String solution(String new_id) { int len =new_id.length(); new_id = new_id.toLowerCase(); new_id=new_id.replaceAll("[^a-z0-9._-]",""); new_id=new_id.replaceAll("[.]+","."); if(new_id.charAt(0)=='.'){ if(new_id.length()>=2){ new_id=new_id.substring(1,new_id.length()); }else{ new_id=""; } } if(new_id.length()>=2..

    프로그래머스 코딩테스트 연습 LV1 2020 카카오 인턴십 키패드 누르기 자바(java) 풀이

    프로그래머스 코딩테스트 연습 LV1 2020 카카오 인턴십 키패드 누르기 자바(java) 풀이

    단순해 보이는 문제를 단순하게 푸는 것은 쉽다. 카카오에서 요구하는것은 좀 더 효율 좋고 창의적인 코드가 아닐까 싶다. 나의 코드는 너무 단순하고 노가다성이 강했다. import java.util.*; class Solution { public String solution(int[] numbers, String hand) { StringBuilder sp = new StringBuilder(); int [][] phone ={{1,2,3},{4,5,6},{7,8,9},{-1,0,-2}}; int [] lNow = {3,0}; int [] rNow = {3,2}; int [] Now={0,0}; int left=0; int right=0; for(int xy :numbers){ if(xy==1){ sp.a..

    프로그래머스 코딩테스트 연습 LV1 2019 KAKAO BLIND RECRUITMENT 실패율 자바(java) 풀이

    프로그래머스 코딩테스트 연습 LV1 2019 KAKAO BLIND RECRUITMENT 실패율 자바(java) 풀이

    HashMap으로 접근했다가 70점 맞고 다른 방법을 생각해봤다. 훨씬 단순하게 풀 수 있었다. 실패율을 내림차순 정렬하고 for문 돌리면서 value가 같으면 그에 맞는 인덱스를 추출하고 -1로 할당한다. 실패율이 같아도 낮은 인덱스부터 방문하기 때문에 정답에 만족할 수 있다. import java.util.*; class Solution { public int[] solution(int N, int[] stages) { int[] answer = new int [N]; double []temp = new double[N+1]; for(int i : stages){ // 스테이지별(index) 머무르는 사람 수 저장 if(i==N+1){ // N까지만 이용 continue; } temp[i]+=1; }..

    프로그래머스 코딩테스트 연습 LV1 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 자바(java) 풀이

    프로그래머스 코딩테스트 연습 LV1 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 자바(java) 풀이

    수학을 필요로하는 문제라기보단 주어진 조건을 어떻게 잘 구현할지를 고민해야한다. 나의 풀이. 정답은 맞았지만 정말 비효율적이고 멍청하게 코딩했다. String 문제가 나오면 일단 분해하려는 습관이 있는것같다. String 자체에서 해결하거나 stack을 활용해보자. import java.util.*; class Solution { public int solution(String dartResult) { String [] temp = dartResult.split(""); String [] word = new String[3]; int t=0; int x=0; for(int i=0; i

    Java 코딩 테스트] 수 다루기 : 약수 소수 ..

    코딩테스트를 효율적으로 해결하기위해서는 범위를 줄여주는 노력이 필요하다. 기본적인 범위줄이기 문제 약수의 개수. 약수의 합 약수의 개수 나머지가 0인 수를 찾는 범위를 제곱수로 제한한다. N의 약수를 구할 때는, 1부터 N의 제곱근 까지의 수만 0으로 나누어 떨어지는지 확인하면 된다. // n의 약수의 수 int n; for(int i=1;i*i

    프로그래머스 코딩테스트 연습 LV1 소수 찾기 자바(java) 풀이

    프로그래머스 코딩테스트 연습 LV1 소수 찾기 자바(java) 풀이

    소수찾기 : 코딩테스트 기초 문제중 기초 문제. 문제점 1 수가 커지면 커질수록 시간이 걸린다. o(N) 2~1000000000 자연수에서 소수를 찾아라: 0(N^2) 해결방법 1. 소수판별시 범위를 루트 n으로 줄인다. (제곱수전 까지 나눠지는 수가 나오지않는다면 그 이후에도 나오지않는다.) (약수구하기) 2. 에라토네스의 체 알고리즘 :1번을 보완한 방법. 범위를 제한하면서 다음에 판별할 숫자도 미리 판별한다. class Solution { public int solution(int n) { boolean [] arr = new boolean[n+1]; // n까지 소수 판별하기 위한 배열 arr[0]=true; arr[1]=true; // 0과1 은 소수 x for(int i=2;i*i

    프로그래머스 입문 LV0 겹치는 선분의 길 자바(java) 풀이

    프로그래머스 입문 LV0 겹치는 선분의 길 자바(java) 풀이

    겹치는 선분의 길이 까지는 구했는데 3중으로 겹치는 선분의 길이 처리를 못했다. 노가다로 구했었는데 수학적 사고가 부족했다. 선분들이 지난 점의 횟수가 2 이상일 때를 생각하면 3중으로 겹치는 부분도 처리할 수 있었다. (2이상이여도 +1 처리) import java.util.*; class Solution { public int solution(int[][] lines) { Map count =new HashMap(); for(int i=0; i