본문 바로가기

전체 글84

[JAVA]프로그래머스 - 문자열 내 마음대로 정렬하기 풀이> 아직 compare오버라이딩을 통해 특정 인덱스에 있는 단어로 비교 같은 알파벳이면 사전순으로 정렬 import java.util.Arrays; public class Programmers9 { public static void main(String[] args) { String[] answer = {"abce", "abcd", "cdx"}; int n = 2; Arrays.sort(strings, (o1, o2) -> { if (o1.charAt(n) == o2.charAt(n)) return o1.compareTo(o2); else return o1.charAt(n) - o2.charAt(n); }); // return strings; } } 2020. 12. 6.
[JAVA]프로그래머스 - 문자열 내 p와 y의 개수 매우 쉬운 문제! 인데 포스팅 한 이유는.... 내가 푼 것 처럼 구구절절 하지않고 한 줄로 매우 간단히 표현할 수 있는 문제였다 새로운 풀이방법을 기억하기 위해서 풀이 > 문자열을 char배열로 만들어 배열의 요소에 p와 y가 있으면 각 갯수를 세려고 선언한 변수에 카운트 카운트 결과를 리턴 class Solution { boolean solution(String s) { int sumP = 0; int sumY = 0; char[] chars = s.toCharArray(); for (char aChar : chars) { if (aChar == 'p' || aChar == 'P') sumP++; else if (aChar == 'y' || aChar == 'Y') sumY++; } // if (su.. 2020. 12. 5.
[JAVA]프로그래머스 - 크레인 인형뽑기 게임 풀이 > 주어지는 보드판에 0이 아닌 맨 위 블럭을 가져와야 되기 때문에 보드판 세로 한줄씩을 Stack으로 구현 했다(표현이 쉽도록 ArrayList로 구현) 세로줄 스택에서 맨위 요소를 꺼내 뽑은 인형이 저장되어있는 result스택에 맨 위 요소와 같은지 확인 후 삭제(answer+=2) 하거나 인형을 저장했다 import java.util.ArrayList; import java.util.Stack; public class ProgrammersKakaoCrane { public int solution(int[][] board, int[] moves) { int answer = 0; ArrayList stackList = new ArrayList(); Stack result = new Stack();.. 2020. 12. 2.
[JAVA]백준 - 11866.요세푸스 문제 0 www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 풀이 > Queue 를 사용하여 큐의 맨 앞의 요소를(poll) 맨 뒤로 넣어준다(offer) k-1번 반복 k번째에 요소를 꺼내고 출력한다 Queue에 남은 요소가 없을 때 까지 반복 import java.io.*; import java.util.Arrays; import java.util.StringTokenizer; public class Baekjoon1920 { public static void main(String[] args) throws IOException { BufferedRe.. 2020. 11. 23.
[JAVA]백준 - 1920.수 찾기 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안 www.acmicpc.net 풀이 > 이중 for문으로 단순 검사를 해서 제출했더니 시간초과가 나왔다...! 검색해보니 이분탐색을 해야한대서 적용해보았다 자바에서 제공하는 Arrays.binarySearch 메소드가 있어서 쉽게 구현이가능했다 Arrays.binarySearch : 이분탐색을 진행해 첫번째 인수인 배열(a)에 두번째인수 값(stM.naxtToken())이 존재한다면 해당 인덱스를 반.. 2020. 11. 13.
[JAVA]백준 - 1018.체스판 다시 칠하기 www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 풀이 > 최종결과값으로 나와야하는 배열을 지정하고 입력된 판을 검사한다. (0, 0)이 흰색또는 검은색으로 시작하는 두가지 경우를 모두 검사해줘야함! 입력된 크기가 8x8이상일 경우 기준점(시작점)을 이동시켜 검사하기 import java.io.*; public class Baekjoon1018 { public static void main(String[] args) throws IOException {.. 2020. 11. 11.