[BOJ 15661] 링크와 스타트
·
Coding Test/Problem Solving
15661번: 링크와 스타트 첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100 www.acmicpc.net 삼성 알고리즘 특강 사전 문제를 풀면서 비트마스킹에 어려움을 느껴 비트마스킹 관련 문제를 풀어보았다. 1. 문제 설명 2. 구현 아이디어 1 - 시간 초과 비트마스킹을 활용하여 k번 사람이 어느 팀에 속했는지 표현하였다. N=4일 때, 0은 링크 팀에 속해있고 1은 스타트팀에 속해있다는 의미이다. 0000: 모든 팀원이 링크 팀 0001: 1,2,3번 사람은 링크 팀, 4번은 스타트 팀 0011: 1,2번은 링크 팀, ..
Issue & PR Template 만들기
·
Github
들어가며 팀 프로젝트를 할 때 진행 상황을 한 눈에 파악하고, 작업을 효율적으로 관리하기 위해 Issue와 PR을 주로 사용한다. 깃허브에서는 Issue와 PR 템플릿을 만들어 양식을 일일이 적지 않고 편하게 내용만 채울 수 있도록 기능을 제공하고 있다. 이번 포스트에서는 Issue와 PR 템플릿을 만드는 과정에 대해 알아보자. Issue Template Settings 탭에 들어가 스크롤을 조금 내리면 Features 항목에 있는 Set up templates 버튼을 누른다. 아래와 같이 템플릿을 선택할 수 있다. 기본 버그 리포트와 기능 추가 템플릿을 제공하고 있으며 수정하는 것도 가능하다. 나는 Issue의 경우 기능 추가, 버그 수정 등을 구분하지 않고 하나의 공통 양식으로 관리할 것이기 때문에 ..
멀티 모듈이 무엇이고, 왜 사용할까?
·
Spring
1. 멀티 모듈이란? Java에서 모듈이란 패키지의 한 단계 위의 집합체이며, 서로 밀접하게 연관된 패키지들과 리소스들의 그룹을 의미한다. 각 모듈은 독립적으로 개발, 빌드, 테스트, 배포가 가능하다. 멀티 모듈 프로젝트는 상호 연결된 여러 개의 모듈로 구성된 프로젝트로, 각 모듈이 서비스의 구성요소로서 동작한다. 2. 멀티 모듈 프로젝트 - 단일 모듈 멀티 프로젝트 vs 멀티 모듈 싱글 프로젝트 회원 시스템을 예시로 들며 멀티 모듈 프로젝트에 대해 자세히 살펴보자. 회원 시스템을 개발하기 위해 아래와 같은 프로젝트가 필요하다. member-external-api: 고객 화면에서 호출하는 API 서버 member-admin-api: 관리자 페이지에서 호출하는 API 서버 member-batch: 주기적인..
[BOJ 1759] 암호 만들기
·
Coding Test/Problem Solving
1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 1. 문제 설명 암호의 조건을 다시 정리하면 아래와 같다. 1개 이상의 모음이 있어야 함 2개 이상의 자음이 있어야 함 암호를 이루는 알파벳이 증가하는 순서일 것 2. 구현 아이디어 1 - 시간 초과 구현 문제라고 생각하고, 순열을 구할 때 사용하는 next_permutation을 활용하여 문제에 주어진 조건대로 구현하였다. 하지만 결과는 시간 초과 🥲 #include using namespace std; int l, c; vector v; char vowel[5] ..
[BOJ 1987] 알파벳
·
Coding Test/Problem Solving
1987번: 알파벳 세로 $R$칸, 가로 $C$칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 ($1$행 $1$열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 www.acmicpc.net 이전에 파이썬으로 푼 적이 있는 문제인데 데이터 추가로 재채점이 된 이후 시간초과로 틀린 문제 처리되어 이번에 C++로 다시 풀어보았다! 1. 문제 설명 예제 입력 1의 경우 C-A-D, 예제 입력 2의 경우 H-A-D-G-J-F로 갈 경우 최대여서 각각 3, 6을 출력한다. 2. 구현 아이디어 1 - 맞았습니다 !! 최대로 움직일 수 있는 칸, 즉 가장 '깊게' 들어갈 수 있는 칸 수를 세어야 하므로 DFS를 사용해야 한다. 이미 지나온 알파벳인지..
[BOJ 1743] 음식물 피하기
·
Coding Test/Problem Solving
1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 1. 문제 설명 2. 구현 아이디어 1 - 맞았습니다!! 힌트를 통해 직관적으로 BFS를 사용해서 영역의 최댓값을 구하면 되겠다고 생각할 수 있었다! 주어진 입력의 크기도 크지 않고, 특별한 예외 조건이 없어 일반적인 BFS 로직을 사용하여 문제를 해결할 수 있었다! BFS를 구현해야 하므로 큐를 사용해주었다. 예제 입력 1과 힌트에 나온 그림을 비교했을 때 왼쪽 상단이 (1, 1)이기 때문에 좌표가 0부터가 아닌 1부터..
짱정연
짱정연의 짱개발자 도전기