Algorithm

    [Java] 프로그래머스 Lv2 - 스킬트리

    [Java] 프로그래머스 Lv2 - 스킬트리

    코딩테스트 연습 - 스킬트리 programmers.co.kr 💡 풀이 해당 문제는 문자열을 다루는 문제이다. 접근 방식 skills_trees 탐색을 하면서 skill에 존재하는 문자일 때 StringBuilder에 추가한다. skill과 비교하면서 순서가 올바르다면 answer에 1을 더해준다. 다른 사람의 풀이를 보니 정규식을 이용해서 간단하게 풀었던데 정규식 공부를 해야겠다. 💻 코드 class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; for (String s : skill_trees) { StringBuilder sb = new StringBuilder(); for (int i = 0; ..

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

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

    코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 📝 문제 설명 0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다. 당신이 압축하고자 하는 특정 영역을 S라고 정의합니다. 만약 S 내부에 있는 모든 ..

    [Java] 프로그래머스 Lv2 - n^2 배열 자르기

    [Java] 프로그래머스 Lv2 - n^2 배열 자르기

    코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr 📝 문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 ..

    [IntelliJ] 인텔리제이 단축키 (mac 기준)

    [IntelliJ] 인텔리제이 단축키 (mac 기준)

    ⌘ : commant ⌥ : option ⌃ : control ⇧ : shift ⏎ : enter fn + ← : home fn + → : end 자주 사용하는 단축키 단축키 설명 ⌥ + ⏎ 퀵픽스 제안 ⌘ + N 생성자, Getter/Setter 등과 같은 코드 생성 ⌘ + ⇧ + ⏎ 스마트 자동완성 ⌘ + ⇧ + T 테스트 코드 생성 및 이동 ⌘ + ⌥ + V 변수로 추출 ⌘ + ⌥ + M 메서드로 추출 ⌘ + E 최근 파일 ⌘ + ⌥ + N Refactor ⌘ + ⌥ + P 매개변수로 추출 ⌘ + ⇧ + [ 이전 탭으로 이동 ⌘ + ⇧ + ] 다음 탭으로 이동 ⌘ + home 커서 최상단으로 이동 ⌘ + end 커서 최하단으로 이동 ⌘ + D 라인 복제 ⌘ + ⌥ + L 코드 정렬 ⌘ + F8 Br..

    [Java] 코테 준비 - 클래스 객체 배열 정렬하기 -  Comparable<E>

    [Java] 코테 준비 - 클래스 객체 배열 정렬하기 - Comparable<E>

    Comparable 이용한 정렬 Comparable 인터페이스를 implements 하고 추상 메서드인 compareTo 를 구현해야 한다. compareTo의 리턴 값이 양수라면 오름차순으로 정렬하고 음수라면 내림차순으로 정렬한다. 내림차순 정렬 public class SortTest { static class Pair implements Comparable { int first; public Pair(int first, int second) { this.first = first; this.second = second; } int second; @Override public int compareTo(Pair p) { return p.first - this.first; } } @Test void sort..

    [Java] 프로그래머스 - 로또의 최고 순위와 최저 순위(Level 1)

    [Java] 프로그래머스 - 로또의 최고 순위와 최저 순위(Level 1)

    🔗 문제 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 💡 풀이 이 문제의 핵심은 0을 개수를 당첨 번호로 가정해서 최고 순위와 0을 제외해 최저 순위를 구하는 것이다. 최고 순위 : 0의 개수 + 맞은 번호의 수 최저 순위 : 맞은 번호의 수 최고 순위와 최저 순위는 위와 같이 구할 수 있다. 💻 코드 import java.util.*; public class Solution { public int[] solution(int[] lottos, int[] win..