Algorithm 124

[백준 - 25332] 수들의 합 8 - Java

문제 설명 25332번: 수들의 합 8 $A = \{1, 2, 3\}$, $B = \{1, 3, 2\}$로, 조건을 만족하는 $i, j$ 쌍은 $(1, 1), (2, 3), (1, 3)$의 세 가지이다. $A_1$ = $B_1 = 1$ $A_2 + A_3 = B_2 + B_3 = 5$ $A_1 + A_2 + A_3 = B_1 + B_2 + B_3 = 6$ www.acmicpc.net 접근 방법 해당 문제는 원티드 주관 코딩테스트 대회 2022년 2회차의 마지막 문제로서 단순하게 해결할 수 있어 보였지만, 시간 제한 등의 이슈로 다소 깐깐했었던 문제였습니다. 특히, 이 문제의 경우 백준 2015번 문제 '수들의 합 4'과 매우 밀접한 관련이 있는 문제이기에 해당 문제를 풀기 앞서 '수들의 합 4' 문제를 ..

Algorithm/BOJ 2022.08.11

[백준 - 25331] Drop 7 - Java

문제 설명 25331번: Drop 7 Drop7은 7×7 크기의 격자에서 진행하는 싱글 플레이어 게임이다. 처음에는 격자가 비어있고, 플레이어는 매 턴마다 1 이상 7 이하의 정수 하나가 적힌 공을 받아 7개의 열 중 한 곳에 떨어뜨려야 한 www.acmicpc.net 접근 방법 해당 문제는 원티드 주관 코딩테스트 대회 2022년 2회차 문제로서 당시 시간적 여유가 있었음에도 불구하고 문제 해결을 위한 아이디어가 떠오르지 않아 제대로 접근조차 하지 못했었던 문제였습니다. 그래서 아쉬운 마음에 코딩테스트 이후에 따로 시간을 내서 재도전 해보았습니다. 우선 문제를 해결하기 위해 접근했었던 방법을 단계별로 나타내면 다음과 같습니다. 1. 각 열별로 공 떨어트리기 - 떨어뜨린 공은 이미 배치되어 있는 공 바로 ..

Algorithm/BOJ 2022.08.08

[프로그래머스] 수식 최대화 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 우선 주어진 식(String expression)에서 숫자들과 연산자들을 분리하여 각각의 리스트에 저장하도록 했습니다. // ... List numbersOrigin = Arrays.stream(expression.split("[+\\-*]")) .map(Long::parseLong) .collect(Collectors.toList()); // 연산식 내 숫자 저장 List operators = getOperators(expression); // 연산식 내 연산자 저장 // ... pri..

[배열 연습] 2차원 배열 뱀 채우기 - Java

뱀 채우기? 2차원 배열을 채우는데에는 여러가지 방법들이 존재한다. 예를 들면 '순서대로 채우기', '지그재그 채우기', '빗금 채우기', '달팽이 채우기' 등이 있다. 이러한 2차원 배열 채우기의 다양한 방법들은 알고리즘 문제 풀이 사이트 '코드업'에서 연습해볼 수 있다. 문제집 / 기초5-3. 2차원 배열 www.codeup.kr 참고로 달팽이 채우기 문제에 대한 풀이는 다음 글을 참고해볼 수 있다. [코드업 - 1484] 2차원 배열 달팽이 채우기 4-1 - Java 문제 설명 [기초-배열연습] 2차원 배열 달팽이 채우기 4-1 다음과 같은 n*m 배열 구조를 출력해보자. 입력이 3 4인 경우 다음과 같이 출력한다. 1 2 3 4 10 11 12 5 9 8 7 6 입력이 4 5인 경우는 다음과 같이..

Algorithm/Basic 2022.08.03

[백준 - 14503] 로봇 청소기 - Java

문제 설명 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 접근 방법 해당 문제는 BFS(너비 우선 탐색)를 통해 해결할 수 있었습니다. 로봇 청소기는 현재 장소에 대한 좌표값 뿐만 아니라, 현재 방향 정보를 가지고 있습니다. 이러한 정보를 바탕으로 별도의 로봇 청소기에 대한 구조체를 선언해주었습니다. static class Robot { int x; int y; int direction; int countOfCleaning; public Robot(int x, int y, int direction, int ..

Algorithm/BOJ 2022.08.03