Thanks to visit codestin.com
Credit goes to littlesam95.tistory.com

[Kotlin MultiPlatform] KMP가 대세인 이유
·
개발/안드로이드
배경 Kotlin 멀티플랫폼, 즉 KMP는 안드로이드와 iOS 간 비즈니스 로직을 공유하기 위해 구글에서 지원하는 플랫폼이다. 어그로 끌려고 대세라고는 해놨지만 사실 KMP가 대세인지는 잘 모르겠다. 다만 KMP는 애플리케이션 개발을 하면서 많은 강점을 가지고 있다. 먼저 요약을 하자면 비즈니스 로직 중복을 삭제하고, 각 네이티브별 성능을 제공 및 보장할 수 있다는 점이 KMP가 가진 강점이라고 할 수 있다. KMP vs Flutter, React Native 구글에서 제공하는 안드로이드와 애플에서 제공하는 iOS가 오늘날 모바일 운영체제 시장을 양분하고 있는 만큼, 많은 앱 개발자들은 왜 안드로이드/iOS에서 개발하는지, 어떤 플랫폼을 고를 것인지, 아니면 둘 다 개발할 것인지에 대해 고민을 할 것이다..
[BOJ/Silver 5] 백준 35143  2026(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/35143 문제 2026. 누군가에게는 아무 의미가 없을 수 있지만, 고려대학교에게는 매우 특별한 수이다.고려대학교의 프로그래밍 경시대회 KCPC 2025의 개최일은 2026년 1월 17일이다. 준서는 대회가 개최된다는 사실이 기뻐 날짜를 뚫어져라 보다가 고려대학교의 2026년이 무언가 특별하다는 사실을 깨달았다.그렇다. 2026년은 고려대학교 개교 121주년인데, 121은 팰린드롬이고 sqrt(121) =11, 121^2=14641도 팰린드롬이다. 다음에 이런년도가 오려면 무려 10080년 뒤인 12106년이 되어야 한다. 여기서 팰린드롬이란 앞과 뒤 어느 방향으로 읽어도 똑같은 수를 의미한다. 준서는 이처럼 어떤 양의 정수가 팰린드롬이..
[BOJ/Silver 5] 백준 34995 쿠폰 잘 사용하기?(C++)
·
BOJ/Silver
문제 링크https://www.acmicpc.net/problem/34995 문제토카는 일정 금액까지 현금 대신 사용할 수 있는 쿠폰을 사용하여 음식을 주문하려 한다.쿠폰에는 N자리 정수로 쿠폰의 금액이 적혀 있다. 하지만 쿠폰 금액의 일부 숫자는 가끔 얼룩이 묻어 얼마인지 알아볼 수 없어 토카는 얼룩이 묻은 부분의 숫자를 적당히 지어내기로 한다. 쿠폰의 각 금액은 1 이상 9 이하의 숫자로 이루어져 있으며, 토카가 지어낼 숫자도 1 이상 9 이하의 숫자여야 한다.토카가 지어낸 쿠폰의 금액이 음식의 가격보다 작으면 주문할 수 없다. 토카가 음식을 주문할 수 있도록 쿠폰을 어떻게 지어내야 할지 알아보자. 입력첫 번째 줄에 쿠폰에 적힌 금액의 자릿수 N (1 ≤ N ≤ 10^5)과 쿠폰에 적힌 금액을 나타내..
[SolveSQL/난이도 3] Advent of SQL 2025(MySQL)
·
SolveSQL/난이도 3
크리스마스를 기념할 완벽한 와인 찾기SELECT * FROM winesWHERE color = 'white'AND quality >= 7AND density > ( SELECT AVG(density) FROM wines)AND residual_sugar > ( SELECT AVG(residual_sugar) FROM wines)AND pH ( SELECT AVG(citric_acid) FROM wines WHERE color = 'white');WHERE절에서 평균은 서브쿼리로 구하자. 두 대회 연속으로 출전한 기록이 있는 배구 선수WITH successive_record AS ( SELECT A.id AS `id`, A.name AS `name`, G.year AS `year`, LAG..
[SolveSQL/난이도 3] 멘토링 짝 리스트(MySQL)
·
SolveSQL/난이도 3
멘토링 짝꿍 리스트WITH mentee AS ( SELECT employee_id AS `mentee_id`, name AS `mentee_name`, department FROM employees WHERE join_date >= DATE_SUB('2021-12-31', INTERVAL 3 MONTH) AND join_date ~개월, ~년 이내 데이터를 구하려면 DATE_SUB(날짜, INTERVAL N MONTH/YEAR) 함수를 사용하면 된다.가능한 모든 멘티-멘토 짝꿍을 매칭해주기 위해 CROSS JOIN을 활용한다.
[BOJ/Gold 5] 백준 32945 극한직업 - 영양사 선생님(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/32945 문제급식 시간이 시작되었다!학생 N명이 한 줄로 서서 배식을 받고 급식실에 앉는다. 배식은 1분 만에 완료되고, 모든 학생은 배식이 완료되자마자 급식실 자리에 앉는다. 즉, 줄의 맨 앞에서 i (1 ≤ i ≤ N)번째에 위치한 학생은 급식 시간이 시작된 지 i분 만에 자리에 앉는다.또한 학생마다 밥을 먹는 데에 걸리는 시간이 정해져 있다. 어떤 학생이 A분에 자리에 앉았고, B분 동안 밥을 먹는다면, 그 학생은 급식 시간이 시작된 지 A분, A+1분, ..., A+B-1분이 지난 시점에는 앉아 있고, A+B분이 지난 시점에 자리에서 일어나 급식실을 떠난다.대곽이는 모든 학생과 친하기 때문에 자신이 원하는 순서대로 줄을 세울 수 ..
[SolveSQL/난이도 2] 점검이 필요한 자전거 찾기(MySQL)
·
SolveSQL/난이도 2
점검이 필요한 자전거 찾기SELECT bike_id FROM rental_historyWHERE rent_at >= '2021-01-01' AND rent_at 50000
[SolveSQL/난이도 2] Advent of SQL 2025(MySQL)
·
SolveSQL/난이도 2
12월 우수 고객 찾기SELECT customer_id FROM recordsWHERE order_date >= '2020-12-01' AND order_date = 1000 스탬프를 찍어드려요SELECT ( CASE WHEN total_bill >= 25 THEN 2 WHEN total_bill >= 15 THEN 1 ELSE 0 END) AS `stamp`,COUNT(*) AS `count_bill`FROM tipsGROUP BY `stamp`ORDER BY `stamp`CASE WHEN THEN ELSE END 구문으로 스탬프의 개수를 분류한다. DVD 대여점 우수 고객 찾기SELECT R.customer_id FROM rental RLEFT JOIN customer C ON R.custom..
[SolveSQL/난이도 1] 일부 데이터 조회하기 & 데이터 그룹으로 묶기(MySQL)
·
SolveSQL/난이도 1
일부 데이터 조회하기SELECT * FROM pointsWHERE quartet = "I"; 데이터 그룹으로 묶기SELECT quartet, ROUND(AVG(x), 2) AS `x_mean`, ROUND(VAR_SAMP(x), 2) AS `x_var`, ROUND(AVG(y), 2) AS `y_mean`, ROUND(VAR_SAMP(y), 2) AS `y_var`FROM pointsGROUP BY quartet반올림 함수 ROUND(N, M), 표본분산 구하기 VAR_SAMP(X)
[SolveSQL/난이도 1] Advent of SQL 2025(MySQL)
·
SolveSQL/난이도 1
사랑에 대한 영화 찾기SELECT title, year, rotten_tomatoes FROM moviesWHERE title LIKE '%Love%' OR title LIKE '%love%'ORDER BY rotten_tomatoes DESC, year DESC; 서울숲에 놀러 가기 좋은 날SELECT measured_at AS `good_day` FROM measurementsWHERE measured_at >= '2022-12-01' AND measured_at 펭귄의 종과 몸무게 조회하기SELECT species, body_mass_g FROM penguinsWHERE species IS NOT NULL AND body_mass_g IS NOT NULLORDER BY body_mass_g DES..
[BOJ/Gold 4] 백준 34987 급식 뭐 먹지(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/34987 문제대전대신고등학교 영양사 선생님은 오늘도 학생들을 위한 급식 메뉴를 만들고 있다. 급식 메뉴는 맛 수치와 영양 수치를 가지며 초기에 두 수치는 모두 0이다. 영양사 선생님은 마법의 주문이라는 특별한 능력이 있으며, 마법의 주문을 사용할 때마다 맛 수치 혹은 영양 수치를 1 증가시킬 수 있다. 마법의 주문은 최대 M번까지 사용할 수 있다.학생들은 각자 음식에 대한 취향이 있어 급식 메뉴가 취향에 맞을 때만 먹는다. 구체적으로 N명의 학생 중 i번째 학생은 맛 수치가 ai, 영양 수치가 bi 이상일 때만 급식을 먹는다.학생들의 까다로운 취향 때문에 영양사 선생님은 마법의 주문을 어떻게 사용할지 어려움을 겪고 있다. 영양사 선생님을..
[BOJ/Gold 3] 백준 31566 힘세고 강한 아침(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/31566 문제안녕하신가! 힘세고 강한 아침, 만일 내게 물어보면나는 영도 근성은 매일 아침 개발 문서를 읽으며 하루를 시작한다. 한국어 문서를 다 읽은 근성은 해외 문서를 읽기 시작했지만, 세상의 다양한 언어로 작성된 개발 문서를 보고 눈앞이 아득해지기 시작했다. 이를 본 영도는 근성을 도와주고자 N개 언어 간 번역을 일부 제공하는 '정영도 봇'(이하 봇)을 만들었다. 봇은 프로토타입이기에 특이한 번역 로직을 지니고 있다.각 언어는 1 이상 N 이하의 중복되지 않는 고유 번호를 가진다.봇은 일부 (A, B) 언어 쌍에 대한 데이터를 가지고 있다. 여기서 A와 B는 언어의 고유번호를 의미한다.변환은 어떤 언어로 이루어진 문구를 다른 언..
[BOJ/Platinum 5] 백준 33894 캡틴박 카페 다녀왔습니다(C++)
·
BOJ/Platinum ~ Diamond
문제 링크https://www.acmicpc.net/problem/33894 문제어제 박지성 카페 다녀왔습니다. 박지성 카페가 열린 건 아니고요, 그냥 카페에서 박지성 생각했습니다.카페에 간 건 아니고요, 그냥 집에서 커피를 마셨습니다. 사실 커피도 안마셨습니다그냥 캡틴박인 상태입니다 박지성의 열렬한 팬인 종학이는 종종 자신이 박지성이라고 상상하곤 한다. 대한민국의 캡틴 박지성은, 언제나 그렇듯 자신을 향해 달려오는 수비수들을 피해 최대한 오래 드리블을 해야 한다.어이없겠지만 축구장을 N개의 정점과 서로 다른 두 정점을 잇는 N-1개의 양방향 간선으로 구성된 트리라고 생각해 보자. 정점은 1번부터 시작하며, i번째 간선은 정점 ai와 bi를 잇는 길이가 wi인 직선 구간이다. 이때, 모든 간선의 길이 ..
[BOJ/Gold 2] 백준 34951 은하 충돌(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/34951 문제우주에는 N개의 은하와 M개의 블랙홀이 존재한다. 각 은하와 블랙홀은 거리 비용을 가진 단방향 워프 게이트로 연결되어 있으며, 사이클을 이루지 않는다.우주에는 다음과 같은 시간-거리 개념이 존재한다.우주의 시간 T는 처음에 0이다.블랙홀은 각자 양의 정수 크기 S를 가진다.어떤 블랙홀에 처음 도착하는 즉시, 그 블랙홀의 크기 S만큼 우주의 시간이 지나 버린다.우주의 시간이 S만큼 흐르면, 모든 은하/블랙홀 간 거리는 중력에 의해 S만큼 가까워진다.두 천체를 잇는 워프 게이트의 길이는 두 천체 간의 거리와 같다.즉 우주의 시간이 T이고 처음 주어진 워프 게이트의 길이가 w일 때, 각 워프 게이트의 길이는 max(w - T, ..
[BOJ/Gold 3] 백준 34156 테토와 바게트(C++)
·
BOJ/Gold
문제 링크https://www.acmicpc.net/problem/34156 문제카사네 테토(重音テト)는 바게트를 좋아한다! 그래서 오늘도 바게트를 먹으려고 한다. 테토는 한 입에 바게트를 모두 삼킬 수 없어서, 바게트를 최소 한 번씩 잘라서 먹으려고 한다.바게트 N개가 수직선 위에 놓여 있고, 이 중 i(1 ≤ i ≤ N)번째 바게트는 [si, ei] 구간에 위치한다. 1 ≤ i ≤ N을 만족하는 모든 i, j에 대해 si = sj, ei = ej를 동시에 만족하는 경우는 없고, 바게트의 길이 ei − si는 2 이상이다. 바게트 A가 바게트 B에 포함된다는 것은 sB ≤ sA와 eA ≤ eB를 동시에 만족하는 경우를 말한다. 테토는 바게트 A가 바게트 B에 포함되었다고 판단하면, 포함된 바게트 A를..