본문 바로가기

알고리즘 테스트

(24)
[프로그래머스] 문자열 다루기 기본 문제설명 : programmers.co.kr/learn/courses/30/lessons/12918 내가 푼 답 public boolean solution(String s) { char[] array = s.toCharArray(); if(!(array.length == 4 || array.length == 6)) { return false; } for(int i=0; i
[프로그래머스] 키패드 누르기 내가 푼 답 public String solution(int[] numbers, String hand) { String answer = ""; int leftPosition = 10; int rightPosition = 12; for(int number : numbers) { if(number==0) { number = 11; } switch (number%3) { case 0 : { answer += "R"; rightPosition = number; break; } case 1 : { answer += "L"; leftPosition = number; break; } case 2 : { int leftSteps = Math.abs(leftPosition-number) / 3; leftSteps += ..
[프로그래머스] 문자열 내림차순으로 배치하기 내가 푼 답 public String solution(String s) { Character[] arr = new Character[s.length()]; for(int i=0; i
[프로그래머스] 문자열 내 p와 y의 개수 내가 푼 답 boolean solution(String s) { int p_size = 0; int y_size = 0; for(int i=0; i 'P' == e).count() == s.chars().filter(e -> 'Y' == e).count(); } chars 가 String의 char배열을 만들어주는 함수인 것을 알았고, filter 함수를 잘 쓰면 간략하게 정의할 수 있는것을 배웠다.
[프로그래머스] 두 정수 사이의 합 내가 푼 답 public long mySolution(int a, int b) { long answer = 0; if(a==b) { return a; } while(a b) { answer += b; b++; if(a==b) answer+=a; } return answer; } 모범답안1 public long betterSolution(int a, int b) { return sumAtoB(Math.min(a, b), Math.max(b, a)); } private long sumAtoB(long a, long b) { return (b - a + 1) * (a + b) / 2; } 모범답안2 publi..
[프로그래머스] 나누어 떨어지는 숫자 배열 내가 푼 답 public int[] solution(int[] arr, int divisor) { List temp_list = new ArrayList(); for(int num : arr) { int restNum = num%divisor; if(restNum == 0) { temp_list.add(num); } } int[] answer; if(0 < temp_list.size()) { answer = new int[temp_list.size()]; for(int i=0; i factor % divisor == 0).toArray(); } 한줄로 끝낼 수도 있고 훨씬 보기도 편하다. 꼭 알아둬야지.
[프로그래머스] 같은 숫자는 싫어 내가 푼 답 public int[] solution(int[] arr) { List answer = new ArrayList(); for(int i=0; i
[프로그래머스] 삼진법 뒤집기 내가 푼 답 int answer = 0; StringBuilder switchedNum = new StringBuilder(); while(3
[프로그래머스] 가운데 글자 가져오기 내가 푼답 public String solution(String s) { String answer = ""; if(s.length()%2 == 1) { int index = (s.length()-1)/2; answer = s.charAt(index) + ""; } else { int index = s.length()/2; answer = s.substring(index-1, index+1); } return answer; } 모범답안 public String better_solution(String word) { return word.substring((word.length()-1)/2, word.length()/2 +1); } 이게 한줄로 끝날 수 있었구나..
[프로그래머스] 2016년 내가 푼 답 public String solution(int a, int b) { String[] week = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"}; int[] month = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int totalDay = b-1; for(int i=0; i