알고리즘

Algorithm

DPS, 완전 탐색으로 섬 개수와 섬을 둘러싼 둘레 구하기

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Sum { public static void main(String[] args) { System.out.println(solution(new int[][]{{1, 0, 1, 0}, {0, 0, 0, 1}, {0, 0, 0, 1}, {0, 0, 1, 1}})); // 3 System.out.println(solution2(new int[][]{{1, 0, 1, 0}, {0, 0, 0, 1}, {0, 0, 0, 1}, {0, 0, 1, 1}})); // 18 } // 둘레 구하기 private static int solution2(int[][] isl..

Algorithm

쇠막대기 LV2

https://programmers.co.kr/learn/courses/30/lessons/42585 코딩테스트 연습 - 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레� programmers.co.kr import java.util.Stack; class Solution { public static int solution(String arrangement) { int answer = 0; Stack stack = new Stack(); for (int i = 0; i < arrangement.length(); i++) { if (arrangement.charAt..

Algorithm

알고리즘 - 종이접기 LV3

https://programmers.co.kr/learn/courses/30/lessons/62049 코딩테스트 연습 - 종이접기 직사각형 종이를 n번 접으려고 합니다. 이때, 항상 오른쪽 절반을 왼쪽으로 접어 나갑니다. 다음은 n = 2인 경우의 예시입니다. 먼저 오른쪽 절반을 왼쪽으로 접습니다. 다시 오른쪽 절반을 왼쪽�� programmers.co.kr import java.util.Arrays; public class Programmers1 { public static void main(String[] args) { System.out.println(Arrays.toString(solution(19))); } public static int[] solution(int n) { return getA..

Algorithm

알고리즘 - 완주하지 못한 선수

https://programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Collection 풀이 public static String solution(String[] participant, String[] completion) { HashMap hashMap = Arrays.stream(participant).collect(Collectors.toMap(s -> s, s -> 1, Integer::sum, HashMap::new)); Arrays.stream(completion)..

Algorithm

2020 Dev-Matching: 웹 백엔드 개발자 후기

https://programmers.co.kr/competitions/144/2020-web-be-first 2020 Dev-Matching: 웹 백엔드 개발자(상반기) 접수 20년 03월 30일 12:00 ~ 04월 17일 18:00 진행 20년 04월 18일 13:00 ~ 04월 18일 15:00 programmers.co.kr 웹 개발은 하지 않지만, 꽤나 괜찮은 회사들이 많이 나온 챌린지에 어떤 알고리즘 문제들이 나오는지 궁금하여 잠시 시간을 내어 풀어봤다. 시간은 1시 ~ 3시 2시간이 주어지고 4문제가 나왔다. 문제에 대한 디테일한 내용은 프로그래머스의 회사 자산이기 때문에 적을 수는 없을 것 같다. 1번 문제는 환형큐에 대한 문제를 풀어봤으면 생각없이 풀어나갈 수 있는 정도로 나왔고, 10분..

Algorithm

알고리즘 - 주식 가격 (스택/큐)

https://programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr public class Programmers2 { public static void main(String[] args) { System.out.println(Arrays.toString(solution(new int[]{1, 2, 3, 2, 3}))); } static public int[] solution(int[] prices) { int[] answer = new int[prices.length]; fo..

Algorithm

카카오 테스트 크레인 인형뽑기 게임

https://programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr public class Programmer { public static void main(String[] args) { int[][] input = {{0, 0, 0, 0, 0}, {0, 0, 1, 0, 3}, {0, 2, 5, 0, 1}, {4, 2, 4, 4, 2}, {3, 5, 1, 3, 1}}; int[] move = {1, 5, 3, 5, 1, 2, 1, 4}; System.out.print(solu..

Algorithm

알고리즘 이항계수 풀기

이항계수란 n개의 원소에서 r개의 원소를 뽑아내는 방법의 수

Algorithm

2020 카카오 코딩 테스트

1번 문항 데이터 처리 전문가가 되고 싶은 “어피치”는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 “aabbaccc”의 경우 “2a2ba3c”(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, “abcabcdede”와 같은 문자열은 전혀 압축되지 않습니다. “어피치”는 이러한 단점을 해결하기 위해 문자열을 1개 이상의 단위로 잘..

Nanamare
'알고리즘' 태그의 글 목록