분류 전체보기

    프로그래머스 입문 LV0 치킨 쿠폰 자바(java) 풀이

    프로그래머스 입문 LV0 치킨 쿠폰 자바(java) 풀이

    아이디어는 맞았지만 불필요한 코드가 너무 많았다. class Solution { public int solution(int chicken) { int answer = -1; int count =0; int temp =0; while(chicken>=10){ count+= chicken/10; temp += chicken%10; chicken=chicken/10; if(temp>=10){ count++; temp-=10; chicken+=1; } } if(temp+chicken>=10){ count++; } return count; } } 간결한 코드 class Solution { public int solution(int chicken) { int answer = 0; while (chicken >= 1..

    프로그래머스 입문 LV0 등수 매기기 자바(java) 풀이

    프로그래머스 입문 LV0 등수 매기기 자바(java) 풀이

    처음 생각한 아이디어. 1. 배열 데이터의 등수를 데이터의 인덱스로 줄 세운다. [200,100,300] -> [2,0,1] (300, 200, 100 순서) 2. idx를 돌면서 데이터 배열의 index값으로 값을 불러와서 값이 같을 때 순서를 등수를 그 자리에 써준다. [2,0,1] data[idx[0(i)]] = data[2]= 300 300 이랑 같은 값을 0(i)위 로 바꿈 data[idx[1]] = data[0]= 200 200 이랑 같은 값을 1위로 바꿈 동순위는 앞에서 걸려주므로 처리됨. 1위가 2개라면 같은데이터는 1위, 1위로 바뀜 package array; import java.util.Arrays; public class ArrayTest2 { public static void ma..

    프로그래머스 입문 LV0 숨어있는 숫자의 덧셈 (2) 자바(java) 풀이

    프로그래머스 입문 LV0 숨어있는 숫자의 덧셈 (2) 자바(java) 풀이

    Character의 isDigit으로 숫자만 걸러내서 더해준다. class Solution { public int solution(String my_string) { int answer=0; StringBuilder sb = new StringBuilder(); char [] carr = my_string.toCharArray(); for(char c: carr){ if(Character.isDigit(c)) sb.append(c); else{ if(!sb.toString().equals("")){ answer+=Integer.parseInt(sb.toString()); sb.delete(0,sb.length()); } } } if(!sb.toString().equals("")){ answer+=Inte..

    프로그래머스 LV0 이진수 더하기 자바(java) 풀이

    프로그래머스 LV0 이진수 더하기 자바(java) 풀이

    메서드만 사용하면 되는 문제지만 가끔 생각이 안 나서 간단하게 정리. 2진수 변환, 10진수 변환 n진수 String > 10진수 int Integer.parseInt("n진수 String", n진수 n); 10진수 int > 2진수 String Integer.toBinaryString(2진수 String); 10진수 int > 8진수 String Integer.toOctalString(2진수 String); 10진수 int > 16진수 String Integer.toHexString(2진수 String); class Solution { public String solution(String bin1, String bin2) { int one = Integer.parseInt(bin1,2); int two..

    프로그래머스 LV0  평행 자바(java) 풀이

    프로그래머스 LV0 평행 자바(java) 풀이

    내 아이디어 4개의 점에서 나올 수 있는 모든 기울기를 HashSet에 넣어서 모든 경우의 수 (6) 보다 작다면 평행이 존재 위와 같은 아이디어로 제출을 했더니 3번만 실패. 반례 X축 평행 Double type 은 0.0 과 -0.0을 다른 값으로 처리함. (double은 0.0과 -0.0을 같은 값으로 처리) 3번이 0.0 과 -0.0이 있는 반례 케이스이다. 이 문제에서 Y축 평행 케이스는 나오지 않았지만 나오게 된다면 처리를 해줘야 한다. Y축 평행 double PI= Double.POSITIVE_INFINITY; double PI2= Double.NEGATIVE_INFINITY; PI와 PI2는 같지 않다. Double PI3= Double.POSITIVE_INFINITY; Double PI4..

    프로그래머스 LV1 2016년 (요일 구하기) 자바(java) 풀이

    프로그래머스 LV1 2016년 (요일 구하기) 자바(java) 풀이

    월 일 을 숫자로 표현하여 요일을 구한다. 1월 1일 = 1 : 금요일 1월 2일 = 2 : 토요일 1월 8일 = 8, (8%7)=1 금요일 1월은 31일까지 2월 1일 = 32, (32%7)=4 월요일 class Solution { public String solution(int a, int b) { String [] days={"THU","FRI","SAT","SUN","MON","TUE","WED"}; //index 1 이 "FRI" int [] nums ={0,31,29,31,30,31,30,31,31,30,31,30,31}; int temp =0; for(int i=0;i

    프로그래머스 LV0 최빈값 구하기 자바(java) 풀이

    프로그래머스 LV0 최빈값 구하기 자바(java) 풀이

    Lv0이라 쉽게 풀릴 줄 알았지만 꽤 애를 먹었다. 주어진 배열의 최대값의 크기의 배열을 만든 뒤 배열에서 나온 수를 인덱스로 사용하여 +1 시켜 최댓값을 가지는 인덱스를 차으려고 했다. 풀이 과정은 맞았지만 구현을 너무 어렵게 생각하여 끙끙되다가 HashMap을 사용하기로 했다. import java.util.*; class Solution { public int solution(int[] array) { HashMap map1 = new HashMap(); if(array.length==1){//원소의 값이 한개라면 바로 리턴; return array[0]; } for(int i=0; i map1.entrySet() for(Map.Entrym:map1.entrySet()) { if(m.getValue..

    프로그래머스 LV1 완전탐색 최소직사각형 자바(java) 풀이

    프로그래머스 LV1 완전탐색 최소직사각형 자바(java) 풀이

    완전 탐색은 문제풀이 아이디어를 잘 생각해야 한다. 첫 진입에서 잘 들어가야 단순하게 잘 풀 수 있다. LV1 문제인데 아이디어를 떠올리지 못하고 엄청 지저분하게 코드를 짜다가 포기하고 다른 분의 아이디어를 확인하고 다시 풀었던 문제다. 가로 세로에 집착하지 말고 각 리스트마다 가로에 큰 값을 집어넣고 총배열에서 가로에서 가장 큰 값 세로에서 가장 큰 값을 빼내면 되는 문제다. [[60, 50], [30, 70], [60, 30], [80, 40]] [[60, 50], [70, 30], [60, 30], [80, 40]] 로 변경 : 각 리스트에서 0번째 인덱스 > 1번째 인덱스 0번째 인덱스 값들에서 가장 큰 값 1번째 인덱스 값들에서 가장 큰 값을 빼내 주면 해결 class Solution { pub..

    Java 코딩테스트] 입출력 방법 Scanner, BufferedReader, StringTokenizer

    자바 코딩테스트 입출력 방법 가장 많이 쓰는 Scanner // Scanner import java.util.Scanner; Scanner sc = new Scanner(System.in); sc.next() // 단어 받기 (공백을 만나기 전까지 읽음) sc.nextLine() // 한줄 sc.nextInt() // 숫자 받기 next() : 공백 이전까지의 문자를 입력받는다. nextLine() : 개행 전까지의 문자열 전체를 입력받는다. (한 줄씩) 장점 - 선언 방식이 비교적 쉽고 간단하다. - String 뿐만 아니라 int, double, float 등의 다양한 자료형으로 입력값을 저장할 수 있다. ( nextInt(), nextDouble(), nextFloat() 등의 Scanner 내장 ..