코딩
-
프로그래머스 문제 풀이 : 금과 은 운반하기코딩 2025. 4. 12. 14:02
문제 개요여러 도시에서 금과 은을 운반해 새로운 도시를 짓는 문제. 각 도시는 금과 은의 보유량, 트럭의 용량, 이동 시간 정보를 가지고 있습니다. 주어진 목표량 a(금), b(은)을 충족할 수 있는 최소 시간을 구하는 것이 목표 문제 요약각 도시의 트럭은 편도 t[i] 시간이 걸리고, 최대 w[i] kg를 운반할 수 있음.트럭은 왕복으로 이동해야 운반이 가능각 도시에는 금 g[i], 은 s[i]가 존재모든 도시의 트럭을 활용해 금 akg, 은 bkg를 최소 시간 내 운반해야 함핵심 전략시간을 기준으로 이분 탐색을 수행특정 시간 mid에 금 a, 은 b를 운반할 수 있는지 판별가능하면 시간을 줄이고, 불가능하면 시간을 늘려 최솟값을 찾음코드 구현def solution(a, b, g, s, w, t): ..
-
프로그래머스 문제 풀이 : JadenCase 문자열 만들기코딩 2025. 3. 28. 16:51
문제 개요주어진 문자열 s를 JadenCase로 변환하는 문제입니다. JadenCase란 다음 규칙을 따릅니다:각 단어의 첫 문자는 대문자, 나머지는 소문자.단어의 첫 문자가 알파벳이 아닐 경우, 그 다음 알파벳은 소문자로 유지.문자열 내 공백이 연속해서 나올 수 있으며, 이를 그대로 유지해야 합니다. 해결 전략이 문제는 문자열 처리, 특히 공백 유지 및 단어 단위 처리가 중요한 문제입니다.✅ 핵심 아이디어문자열을 한 글자씩 탐색하면서, 단어의 시작을 판단합니다.공백을 포함한 원형 문자열을 유지해야 하므로, split()보다는 직접 문자 순회 방식이 적합합니다.코드 구현def solution(s): result = '' new_word = True for ch in s: ..
-
프로그래머스 문제 풀이 : 최솟값 만들기코딩 2025. 3. 28. 13:47
최솟값 만들기문제 개요길이가 같은 두 배열 A, B가 주어졌을 때, 다음 조건을 만족하며 곱의 합이 최소가 되도록 배열을 매칭하는 문제입니다.배열 A, B에서 각각 한 원소씩 선택해 곱하고 이를 누적하여 더합니다.각 원소는 한 번만 사용할 수 있습니다.누적된 총합이 최소가 되도록 만들어야 합니다.문제 해결 전략이 문제는 **탐욕 알고리즘(Greedy Algorithm)**을 사용해서 해결할 수 있습니다.✅ 핵심 아이디어작은 수는 큰 수와 곱해야 전체 합이 작아집니다.따라서 배열 A는 오름차순 정렬, 배열 B는 내림차순 정렬하여 각각 곱하는 것이 최적입니다.코드 구현def solution(A, B): A.sort() # 오름차순 정렬 B.sort(reverse=True) ..
-
프로그래머스 문제 풀이 : 올바른 괄호 판단하기코딩 2025. 3. 27. 18:06
문제 개요괄호로만 이루어진 문자열 s가 주어졌을 때, 해당 문자열이 올바른 괄호 문자열인지 판단하는 함수를 작성하는 문제입니다.제한사항문자열 s의 길이는 최대 100,000입니다.문자열은 '(', ')'로만 이루어져 있습니다.문제 해결 전략이 문제를 해결하기 위한 핵심은 열린 괄호 '(' 와 닫힌 괄호 ')' 의 균형입니다. 이를 위해 다음과 같은 전략을 사용할 수 있습니다.✅ 조건 정리열린 괄호가 닫힌 괄호보다 먼저 나와야 합니다.열린 괄호의 개수와 닫힌 괄호의 개수가 같아야 합니다.해결 방법 1: 카운터 기반 해결def solution(s): count = 0 for char in s: if char == '(': count += 1 else: ..
-
프로그래머스 문제풀이 : 문자열 내림차순으로 배치하기코딩 2025. 3. 26. 01:26
문제 개요주어진 문자열 s에서 문자들을 큰 것부터 작은 순으로 정렬한 후 새로운 문자열을 반환하는 함수를 작성해야 합니다.제한사항s는 영문 대소문자로만 구성됩니다.대문자는 소문자보다 작은 것으로 간주합니다. (즉, 소문자가 대문자보다 더 크다고 판단해야 함)s의 길이는 1 이상입니다.문제 해결 방법내림차순 정렬 수행sorted(s, reverse=True)를 사용하면 기본적으로 내림차순 정렬이 되지만, 대문자가 소문자보다 먼저 오게 됩니다.이를 해결하기 위해 정렬 기준을 key=str.lower로 설정하여 소문자와 동일한 기준으로 정렬한 후, 같은 경우 원래의 우선순위를 유지해야 합니다.정렬된 문자들을 문자열로 변환join()을 사용하여 리스트를 문자열로 변환합니다. 코드 구현def solution(s)..
-
프로그래머스 문제 풀이: 약수의 개수와 덧셈코딩 2025. 3. 25. 15:44
문제 개요두 정수 left와 right가 주어졌을 때, 해당 범위 내의 모든 정수에 대해 약수의 개수가 짝수이면 더하고, 홀수이면 빼는 연산을 수행하는 함수를 작성해야 합니다.제한사항1 ≤ left ≤ right ≤ 1,000문제 해결 방법이 문제를 해결하기 위해 다음과 같은 절차를 따릅니다.약수의 개수 구하기특정 수의 약수 개수를 구하는 함수를 작성합니다.약수의 개수를 빠르게 구하기 위해 1부터 n의 제곱근까지만 확인하는 방법을 사용합니다.left부터 right까지 반복left부터 right까지의 숫자를 순회하며, 각 숫자의 약수 개수를 확인합니다.약수의 개수에 따른 연산 수행약수 개수가 짝수이면 값을 더하고, 홀수이면 값을 뺍니다.최종 결과 반환모든 연산이 끝난 후 최종 값을 반환합니다.코드 구현# ..
-
프로그래머스 문제 풀이: 콜라츠 추측 (Level 1)코딩 2025. 3. 22. 13:41
문제 설명1937년 Collatz에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면 모든 수를 1로 만들 수 있다는 이론입니다.작업 과정입력된 수가 짝수라면 2로 나눕니다.입력된 수가 홀수라면 3을 곱하고 1을 더합니다.결과로 나온 수에 같은 작업을 반복합니다.이 작업을 1이 될 때까지 반복하며, 반복 횟수를 반환합니다.단, 500번 반복해도 1이 되지 않는다면 -1을 반환합니다.제한 사항입력된 수 num은 1 이상 8,000,000 미만인 정수입니다.입출력 예시numresult68164626331-1문제 해결: 사고 과정이 문제를 처음 접했을 때, 반복문을 활용하여 간단한 조건문만으로 해결할 수 있는 문제라고 생각했습니다. 핵심은 주어진 수를 1로 만들기 위한 변환 작업을 몇..
-
node 2023_04_07_TIL.js ...is not defined코딩 2023. 4. 8. 04:53
$ls$cd..$ls$ node 2023_04_07_TLI.js________________________ //꽤 오랜만에 찾아뵙네요.//근황을 말씀드리자면, 1주일 동안은 스파르타 코딩 클럽에서 수강하는 한달치 웹 개발 종합반을 완강했고//이러한 과정을 통해 얻은 지식들을 이용하여//1주일은 토이 프로잭트를 진행하면서 4인 1조로 간단한 블로그를 만드는 작업을 통해 협업하는 과정을 거쳤습니다.//막 개발에 입문해서 그런지 github를 쓰거나 , git을 정리하는 작업도 아직 많이 미숙해. 계속하여 정진하고 있습니다.//좋은 팀원들간의 협업으로 이뤄낸 결과물이기도 하지만, 내용물과 경험치는 쏙쏙 빨아먹었습니다! //이제 저도 로그인이나 회원가입 등의 간단한 서비스를 제공하는 웹 사이트는 만들어볼 수..