전체 글 458

[BOJ/Silver 2] 백준 20413 MVP 다이아몬드 (Easy)(C++)

문제 링크 https://www.acmicpc.net/problem/20413 20413번: MVP 다이아몬드 (Easy) 입력된 MVP 등급을 달성하기 위한 최대 누적 과금액을 만원 단위로 출력한다. www.acmicpc.net 문제 입력 제한 외 난이도에 따른 문제의 차이는 없다. 상민이는 게임 단풍잎이야기에 과금을 즐겨 한다. 단풍잎이야기에는 과금액에 따라 혜택을 제공하는 'MVP 등급'이 존재한다. MVP 등급은 브론즈(B), 실버(S), 골드(G), 플래티넘(P), 다이아몬드(D)로 총 다섯 등급이 있으며, 현재 달과 지난달, 즉 현재 달을 포함한 최근 2개월간의 과금액으로 결정된다. 단, 단풍잎이야기에는 과도한 과금을 막기 위해 '최대 과금 한도'가 있어 한 달에 최대 다이아몬드 등급 기준액 ..

BOJ/Silver 2024.02.17

[BOJ/Silver 2] 백준 30022 행사 준비(C++)

문제 링크 https://www.acmicpc.net/problem/30022 30022번: 행사 준비 첫째 줄에 정수 $N(2\le N\le 100,000)$과 정수 $A,B(1\le A,B\leq N;A+B=N)$가 공백으로 구분되어 주어진다. 둘째 줄부터 $N$개의 줄에 정수 $p_i,q_i(1\le p_i,q_i\le 10^9)$가 공백으로 구분되어 주어진다. $p_i,q_i$는 www.acmicpc.net 문제 동하와 지원이는 ANA 행사를 준비하고 있다. 행사를 위해 N종류의 물건이 한 개씩 필요하기 때문에 동하가 A개를, 지원이가 B개를 나눠서 준비하기로 했다. 근처에 있는 상점 1, 2에서 N종류의 물건을 모두 판매하고 있다. 같은 물건이라도 상점에서 판매하는 가격이 다를 수 있기 때문에 ..

BOJ/Silver 2024.02.15

[BOJ/Silver 3] 백준 30701 돌아온 똥게임(C++)

문제 링크 https://www.acmicpc.net/problem/30701 30701번: 돌아온 똥게임 첫 번째 줄에는 방의 수 $N$과 근호의 시작 전투력 $D$가 공백으로 구분되어 정수로 주어진다. ($1\leq N\leq 100\,000;$ $1\leq D\leq 10^9$) 다음 $N$개 줄에는 한 줄에 하나씩 방의 정보 $A_i,X_i$가 공백으로 구 www.acmicpc.net 문제 유튜브에서 똥게임 광고를 지나치게 많이 본 근호는 본인이 직접 똥게임을 설치해서 하기로 했다. 처음에 근호는 D의 전투력을 가지고 시작한다. 근호 앞에는 N개의 방이 있는데, 각 방에는 몬스터 또는 장비가 있으며 i(1 ≤ i ≤ N)번째 방에 있는 몬스터 또는 장비는 전투력 Xi를 가진다. 근호는 매번 아직 ..

BOJ/Silver 2024.02.14

[BOJ/Silver 5] 백준 25496 장신구 명장 임스(C++)

문제 링크 https://www.acmicpc.net/problem/25496 25496번: 장신구 명장 임스 첫 번째 줄에 정수 $P$와 정수 $N$이 공백으로 구분되어 주어진다. ($1 \le P \le 200$, $1 \le N \le 1\,000$) 두 번째 줄에는 정수 $A_1, A_2, \dots, A_N$이 공백으로 구분되어 주어진다. ($1 \le A_i \le 200$) www.acmicpc.net 문제 메이플스토리에는 전문 기술이라는 제작 시스템이 있다. 전문 기술은 특정량의 피로도가 쌓이는 대신 다양한 장비 및 비약을 제작할 수 있는 시스템이다. 장신구 명장인 임스는 어떻게 하면 더 효율적으로 많은 장신구를 제작할 수 있을지 고민에 빠졌다. 임스가 만들 수 있는 장신구는 N개가 있고,..

BOJ/Silver 2024.02.13

[BOJ/Silver 5] 백준 25644 최대 상승(C++)

문제 링크 https://www.acmicpc.net/problem/25644 25644번: 최대 상승 미래를 예측하는 능력이 있는 정균이는 앞으로 $N$일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고 www.acmicpc.net 문제 미래를 예측하는 능력이 있는 정균이는 앞으로 N일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고 적당한 시점에 팔아서 최대한의 이득을 얻으려고 한다. ANA 회사의 앞으로 N일간의 주가를 a1, a2, ..., aN이라고 하자. 정균이가 i번째 날에 주식을 사고, j번째 날에 ..

BOJ/Silver 2024.02.13

[BOJ/Gold 3] 백준 31404 아리스, 청소합니다! (Easy)(C++)

문제 링크 https://www.acmicpc.net/problem/31404 31404번: 아리스, 청소합니다! (Easy) 첫 번째 줄에 방의 크기를 나타내는 $H, W$가 주어집니다. $(1 \le H, W \le 64)$ 두 번째 줄에 아리스의 처음 위치를 나타내는 $R, C, D$가 주어집니다. 아리스의 좌표는 $(R,C)$이고, 위쪽을 기준으로 시계 www.acmicpc.net 문제 밀레니엄 사이언스 스쿨 엔지니어부의 히비키는 튜링 머신과 비슷한 원리로 작동하는 로봇 청소기를 발명했습니다. 히비키는 로봇 청소기로 H × W 직사각형 격자 모양의 게임개발부 부실을 청소하려고 합니다. 격자칸의 좌표는 (r, c)로 나타낼 수 있으며, 아래로 갈수록 r이 증가하고 오른쪽으로 갈수록 c가 증가합니다...

BOJ/Gold 2024.02.13

[BOJ/Gold 4] 백준 17492 바둑알 점프(C++)

문제 링크 https://www.acmicpc.net/problem/17492 17492번: 바둑알 점프 입력의 첫 줄에 양의 정수 N이 주어진다. 이는 N × N 정사각 행렬의 한 변의 길이이다. 그 다음 줄부터 N개의 줄에 걸쳐 판의 상태가 주어진다. 각 줄은 N개의 정수가 공백으로 구분되어 주어지는 www.acmicpc.net 문제 바둑알 점프는 판 위에 있는 바둑알을 하나만 남기고 모두 없애는 게임이다. 바둑알은 가로, 세로, 대각선으로 인접한 바둑알 하나를 점프하여 움직일 수 있다. 움직였을 때, 뛰어넘은 바둑알은 없어진다. 이때 뛰어넘을 바둑알이 없으면 움직일 수 없다. 예를 들어, [그림1]에서 왼쪽 상단 바둑알을 오른쪽 하단 대각선 방향으로 움직이면 [그림2] 와 같이 된다. [그림3]에서..

BOJ/Gold 2024.02.02

[BOJ/Gold 5] 백준 29704 벼락치기(C++)

문제 링크 https://www.acmicpc.net/problem/29704 29704번: 벼락치기 숙명여자대학교의 알고리즘 학회 ALGOS에 합격한 혜민이는 너무 기뻐 마음이 들뜬 나머지 프로그래밍 과제가 있는 것을 잊어버리고 말았다. 프로그래밍 과제로는 다양한 난이도의 문제 $N$개가 www.acmicpc.net 문제 숙명여자대학교의 알고리즘 학회 ALGOS에 합격한 혜민이는 너무 기뻐 마음이 들뜬 나머지 프로그래밍 과제가 있는 것을 잊어버리고 말았다. 프로그래밍 과제로는 다양한 난이도의 문제 N개가 주어지고, 앞으로 T일의 제출 기한이 남아있다. 만약 제출 기한 내에 문제를 제출 못 하면, 제출하지 못한 문제마다 정해져 있는 벌금을 내야 한다. 혜민이는 벌금을 내고 싶지 않기 때문에, 내는 벌금의..

BOJ/Gold 2024.01.31

[BOJ/Gold 4] 백준 29756 DDR 체력 관리(C++)

문제 링크 https://www.acmicpc.net/problem/29756 29756번: DDR 체력 관리 첫 번째 줄에는 두 정수 $N$과 $K$가 공백으로 구분되어 주어진다. $N$은 곡의 전체 구간의 수를 의미하며, $K$는 회복하는 체력의 양이다. $(1 \leq N \leq 1\,000;$ $1 \leq K \leq 10)$ 두 번째 줄에는 정수 $s_1 www.acmicpc.net 문제 리듬게이머 코더빡은 최근 댄스 댄스 레볼루션(DDR)에 푹 빠져있다. 이 게임은 곡이 재생될 때 떨어지는 노트에 맞춰 발판을 밟는 게임으로, 많은 체력을 소모하기 때문에 체력 관리가 매우 중요하다. 곡은 N개의 구간으로 이루어져 있고, 어떠한 구간 i (1 ≤ i ≤ N)에 대해 코더빡은 해당 구간을 플레이..

BOJ/Gold 2024.01.29

[BOJ/Silver 2] 백준 30804 과일 탕후루(C++)

문제 링크 https://www.acmicpc.net/problem/30804 30804번: 과일 탕후루 은하는 긴 막대에 $N$개의 과일이 꽂혀있는 과일 탕후루를 만들었습니다. 과일의 각 종류에는 $1$부터 $9$까지의 번호가 붙어있고, 앞쪽부터 차례로 $S_1, S_2, \cdots, S_N$번 과일이 꽂혀있습니다. 과 www.acmicpc.net 문제 은하는 긴 막대에 N개의 과일이 꽂혀있는 과일 탕후루를 만들었습니다. 과일의 각 종류에는 1부터 9까지의 번호가 붙어있고, 앞쪽부터 차례로 S1, S2, ⋯, SN번 과일이 꽂혀있습니다. 과일 탕후루를 다 만든 은하가 주문을 다시 확인해보니 과일을 두 종류 이하로 사용해달라는 요청이 있었습니다. 탕후루를 다시 만들 시간이 없었던 은하는, 막대의 앞쪽과..

BOJ/Silver 2024.01.25

[메이플 캘린더] 위로 스와이프 시 새로고침 기능을 구현해보자

사용 의도 로비 화면에 이벤트 리스트와 캐릭터 정보가 존재하는데, 시간이 지나면 해당 데이터가 변경될 수 있는데 이를 위해 새로고침 기능이 필요하다고 생각하였다. 보통 위로 스와이프를 하면 새로고침이 이루어지는 앱이 많기 때문에, 어떻게 구현하는지 알아볼 겸 새로고침 기능을 추가하고자 하였다. 학습 내용 Layout을 NestedScrollView로 감싸 Fragment가 스크롤이 가능하도록 만들어주고, 다시 SwipeRefreshLayout으로 감싸준다. 이후 코틀린 내부에서 onRefreshListener를 추가함으로써 스와이프 시 어떤 메소드를 호출할 것인지를 결정한다. 또한 새로고침을 할 때 나오는 새로고침 아이콘의 색상도 변경할 수 있다. 적용 방법 다음과 같이 ConstraintLayout을 ..

[BOJ/Gold 3] 백준 31230 모비스터디(C++)

문제 링크 https://www.acmicpc.net/problem/31230 31230번: 모비스터디 첫 번째 테스트 케이스에 대한 그림이다. 이 테스트 케이스에는 $1 → 7 → 2 → 6$ 경로와 $1 → 4 → 5 → 2 → 6$ 경로 총 2개의 최단 경로가 존재하며, 최단 경로 위에 존재하는 도시는 $1$, $2$, $4$, $5 www.acmicpc.net 문제 현대모비스는 글로벌 자동차 부품 기업으로 자율주행, 커넥티비티, 전동화 분야에 역량을 집중해 스마트 모빌리티 시대를 선도하고 있습니다. 현대모비스는 앞으로 미래 모빌리티 산업에서 소프트웨어와 하드웨어를 결합한 차별화된 모빌리티 솔루션을 제공하는 선도기업으로 도약하기 위해 노력하고 있으며, 이러한 연구개발과 생산능력 등 핵심역량을 바탕으..

BOJ/Gold 2024.01.24

[BOJ/Gold 4] 백준 28333 화이트 칼라(C++)

문제 링크 https://www.acmicpc.net/problem/28333 28333번: 화이트 칼라 전미 최고의 사기꾼. 안 해본 도둑질, 안 해본 사기가 없는 닐 카프리는 오늘 저녁 세계 최고의 미술품 중 하나인 “뮤직박스”를 훔칠 예정이다. 오늘 아침, 이 정보를 입수한 AdbyMe, Inc. 는 그를 www.acmicpc.net 문제 전미 최고의 사기꾼. 안 해본 도둑질, 안 해본 사기가 없는 닐 카프리는 오늘 저녁 세계 최고의 미술품 중 하나인 “뮤직박스”를 훔칠 예정이다. 오늘 아침, 이 정보를 입수한 AdbyMe, Inc. 는 그를 검거하기 위한 작전을 세우고 있다. AdbyMe, Inc. 는 그가 현재 어느 도시에 있는지, 그리고 뮤직박스가 어느 도시에 있는지 파악했고, 그를 잡기 위해..

BOJ/Gold 2024.01.23

[메이플 캘린더] RecyclerView로 원하는 달력 View를 만들어보자

사용 의도 왜 달력을 만들었는가? 오늘 진행하고 있는 이벤트뿐만 아니라, 특정 날에 무슨 이벤트가 진행했는지를 파악하고 싶어 달력을 구현하여 특정 날짜를 클릭하여 해당 날짜에 진행한 이벤트 리스트를 보여줄 수 있도록 하였다. 학습 내용 RecyclerView와 ListAdapter를 이용하여 Item마다 ViewType을 정해놓고 달력 UI를 구현한다. 우리가 달력을 보면 날짜뿐만 아니라 상단에 일월화수목금토를 표시해주는데, 보통 요일과 날짜의 배경색을 다르게 나타내고 있다. 따라서 메이플 캘린더의 달력을 배경색을 날짜는 흰색, 요일은 회색으로 출력되도록 하기 위하여 ViewType을 요일(Header)과 날짜(Date)로 구분하고, 날짜에는 Click Listener를 달아줌으로써 클릭 시 이벤트 리스..