알고리즘/Java

    [프로그래머스] 문자열 내림차순으로 배치하기

    문제 나의풀이 - 입력된 문자열을 반대로 출력하는 문제 - 일단 ""을 입력받은 문자열에서 빼서 새로운 배열로 저장 - 콜렉션을 이용 reverseOrder를 쓰면 뒤집혀서 나온다 - 뒤집어진 배열을 ""을 붙혀 answer에다 전달 실행결과

    [프로그래머스] 문자열 내 p와 y의 개수

    문제 나의풀이 - p와 y의 개수를 비교해 같으면 true 다르면 false를 리턴하는 문제 - 제일 기본으로 for문 4개를 돌려서 개수를 뽑아봤다 - 소문자 'y' 'p'때나 대문자 'Y' 'P'일때 - count / count2라는 변수를 만들어 y일때는 count2 p에는 count로 문자열에 있으면 1씩 증가하는 형태로 구현 - 조건식이 끝나면 count와 count2를 비교해 같으면 true 다르면 false를 리턴한다 실행결과

    [프로그래머스] 문자열 내 마음대로 정렬하기

    문제 나의풀이 - 문자열로 구성된 배열에서 정수 n이 주어지면 문자역의 인덱스 n번째 글자를 가져와서 오름차순으로 정렬하는 문제 - 배열에서 값을 찾기 위해 ArrayList를 사용했다. - ArrayList는 조회하기는 빠르지만 값을 수정하거나 삭제하기에는 LinkedList가 더 효율적이다 - 반환할 배열 answer의 길이는 strings배열과 같으므로 strings.length로 지정한다. - n번째문자를 기존 문자열에 붙여 만든 새로운 문자열을 넣을 ArrayList를 생성한다. - strings의 길이만큼 반복문을 사용해 새로운 문자열(strings[i].charAt(n) + strings[i])을 넣어준다. (ex) sun -> usun, car -> acar) - Collections.so..

    [프로그래머스] 두 정수 사이의 합

    문제 나의풀이 - 두 정수 a와 b를 비교해 속한 모든 정수의 합을 구하는 문제 - if문으로 두가지의 조건을 줬다 a가 b보다 클 경우 / b가 a보다 클 경우 - b가 a보다 크면 시작 숫자를 a라고 하고 b와 같거나 작을때까지 for문을 돌리면서 answer에다가 해당 모든 정수를 더해준다 - else if로 a가 b보다 클 경우를 똑같이 방법으로 작성한다 실행결과

    [프로그래머스] 나누어 떨어지는 숫자 배열

    문제 나의풀이 - arr이라는 String 배열을 가져와 divisor라는 자연수로 각각의 요소를 나누어서 맞아 떨어지면 return하는 문제 - 일단 Arrays.sort로 해당하는 arr을 정렬해준다 - stream으로 arr을 사용하겠다고 ()안에 arr을 넣어준다 - filter 메서드로 해당 요소들을 조건에 따라 걸러내는 작업을 해준다 - 만약 array가 divisor를 나누어 0이면 그걸 다시 array배열로 만들어주면서 answer에다가 저장된다 - 만약 나누어 0이 아니면 answer에는 아무것도 안 들어가니 길이가 0이 된다 - 0이면 answer에 -1을 넣어주는 식으로 코딩했다 실행결과

    [프로그래머스] 같은 숫자는 싫어

    문제 나의풀이 실행결과

    [프로그래머스] 가운데 글자 가져오기

    문제 나의풀이 - String s에 문자열을 가져와 split으로 ""를 없애주고 String배열로 만들어줬다 - 그 String 배열 arr의 길이가 만약 짝수라면, for문을 돌리면서 i가 가운데 글자가 맞다면 그 글자와 +1한 글자를 가져와서 answer에다가 넣어준다 - +1을 왜 했냐면 글자가 짝수라면 가운데 글자는 하나가 아니라 두개이기 때문 - 홀수라면 2로 나누어서 가운데 글자를 가져온다 실행결과

    [프로그래머스] 2016년

    문제 나의 풀이 실행결과

    [프로그래머스] K번째 수

    문제 나의 풀이 실행결과

    [프로그래머스] 모의고사

    문제 나의풀이 실행결과