프로그래머스 4

[프로그래머스] 시저 암호 풀이 - JAVA

📍LEVEL1 : 시저 암호 유형 : 구현 📍풀이방법 입력값이 String 이고, 한 자리마다 n씩 움직여서 최종 결과값을 내야한다. 1) String의 한 자리씩 확인을 해야한다. -> char를 사용해야겠다고 생각. 2) 대소문자를 함께 입력받는다. -> 대소문자 구분을 해줘야겠다고 생각. 3) char는 int형으로 변경할 수 있고, 계산을 할 수 있기 때문에, 입력받은 n 과 각 자리 char 값을 더해준다. 4) z 또는 Z 를 넘어가는 범위는 있일 수 없기 때문에 a~z의 개수(=26)를 빼준다. (z or Z 범위를 벗어나게 된다면) 5) 영어 알파벳을 제외한 다른 문자(공백)도 들어갈 수 있기 때문에 예외로 처리해준다. 📍코드 class Solution { public String so..

[프로그래머스] 무지의 먹방 라이브 - JAVA

[프로그래머스] 무지의 먹방 라이브 - JAVA 문제설명 문제풀이 방법 일단, Collection.sort를 사용해서 먹는 시간이 가장 빠른 순으로 정렬 while문을 통해 빠른시간 순서대로 값을 빼내서 그 크기만큼 곱해준다. 코드 : ( foods.get(0).time - cnt ) * n while문의 조건식을 보면, 남은 k번을 돌아가는 데 있어, foods의 size가 더이상 줄어들지 않는 크기를 찾아낼 수 있다. 그렇게 하면 더이상의 작업을 할 필요없이 index를 구해주면된다. Food 클래스의 num(index) 순서대로 정렬하고, ( k % n ) 를 통해 num의 값을 찾아주면 된다. 내가 계속 틀렸던 이유 ArrayList를 사용했다. 사실, ArrayList를 사용한다고 문제가 발생하..

[프로그래머스] 쿼드압축 후 개수 세기 - JAVA

[프로그래머스] 쿼드압축 후 개수 세기 - JAVA 문제 설명 풀이과정 1. 구역을 정해서 그 구역이 0으로 채워있으면 0으로 압축, 1으로 채워져있으면 1로 압축하는 과정 1-1. 만약, 모두 똑같은 숫자로 되어 있다면 zeroCnt or oneCnt를 증가시킨다. 1-2. 압축되지 않는다면 2번으로! 2. size/2 만큼 잘라서 재귀호출을 하여 1번의 과정을 반복한다. 2-1. size/2를 자르고 포인트는 dx, dy를 아래와 같이 설정하는 것이다. static double[] dx = {0, 0, 0.5, 0.5}; static double[] dy = {0, 0.5, 0, 0.5}; 내가 놓쳤던 부분 - 전체가 똑같은 0이나 1로 채워져있는 경우를 반영해주지 않았다! 소스 코드 import j..

[프로그래머스] N으로 표현

[프로그래머스] N으로 표현 문제 설명 [ 생각하기 ] 1. N의 숫자만을 사용하여 사칙연산을 할 수 있고, 그 결과가 number 이 나오는 최소한의 N의 개수를 구하는 문제이다. 2. N의 개수의 범위가 1~8, N을 1~8번 사용해서 만들 수 있는 수 중 number이 나오는지 파악하면 된다. (N = 5라고 가정) 5의 개수가 1 5 5의 개수가 2 55 5+5, 5-5, 5*5, 5/5 5의 개수가 3 555 [5의 개수가 1] (사칙연산) [5의 개수가 2] [5의 개수가 2] (사칙연산) [5의 개수가 1] 5의 개수가 4 5555 [5의 개수가 1] (사칙연산) [5의 개수가 3] [5의 개수가 2] (사칙연산) [5의 개수가 2] [5의 개수가 3] (사칙연산) [5의 개수가 1] 이게 ..

알고리즘 2020.06.18