본문 바로가기

코딩테스트18

JadenCase 문자열 변환하기, 문제점 해결과 학습 JadenCase 문자열 변환하기, 문제점 해결과 학습 프로그래밍을 하다 보면, 때로는 예상치 못한 문제에 부딪히곤 합니다. 오늘은 문자열을 JadenCase로 변환하는 과제를 해결하면서 겪었던 문제와 그 해결 과정에 대해 이야기해보려 합니다. JadenCase 문자열 변환하기 문제 정의 JadenCase란 모든 단어의 첫 글자만 대문자로, 나머지 알파벳은 소문자로 쓰는 문자열 형태를 말합니다. 예를 들어, "hello world"는 JadenCase로 변환하면 "Hello World"가 됩니다. 여기에는 몇 가지 조건이 있습니다. 문자열은 알파벳, 숫자, 공백 문자로 이루어져 있습니다. 숫자는 단어의 첫 문자로만 나올 수 있습니다. 공백 문자는 연속해서 나올 수 있습니다. 이러한 조건을 만족하며 주어진.. 2024. 4. 6.
코딩테스트 정렬 문제 가장 큰 수 만들기, 문제 해결과 코드 리팩토링 코딩테스트 정렬 문제 가장 큰 수 만들기, 문제 해결과 코드 리팩토링 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 소개 주어진 배열의 숫자들을 재배치하여 만들 수 있는 가장 큰 수를 문자열 형태로 반환하는 문제입니다. 예를 들어, [3, 30, 34, 5, 9] 배열이 주어졌을 때, 이 숫자들을 재배치하여 만들 수 있는 가장 큰 수는 "9534330"입니다. 기존 코드의 문제점 기존 작성한 코드는 모든 순열을 생성하여 가장 큰 수를 찾는 방식입니다. 이 방법은 이론적으로는 정확하지만, 실제로는 몇 가지 큰 문제점을 가지고 있습니다. const ge.. 2024. 3. 23.
1. Two Sum 문제 해결 방법 1. Two Sum 문제 해결 방법 Two Sum 문제는 주어진 숫자 배열(nums)에서 두 개의 숫자를 선택하여 그 합이 특정 타겟(target)이 되도록 하는 문제입니다. 이 문제를 해결하는 것은 프로그래밍 능력을 평가하는 데 자주 사용되며, 특히 배열과 반복문을 다루는 기본적인 알고리즘 능력을 테스트하는데 적합합니다. 소제목5 문제 설명 1.Two Sum 문제 바로가기 주어진 배열 nums에서 두 숫자의 합이 target이 되는 두 숫자의 인덱스를 찾아야 합니다. 각 입력에는 정확히 하나의 해결책이 존재하며, 같은 요소를 두 번 사용할 수 없습니다. 답은 어떤 순서로 반환해도 됩니다. 해결 방법 이 문제를 해결하기 위한 접근 방법 중 하나는 이중 반복문을 사용하는 것입니다. 아래는 TypeScrip.. 2024. 3. 21.
코딩테스트 최소 힙(MinHeap)을 활용한 "더 맵게" 문제 해결법 코딩테스트 최소 힙(MinHeap)을 활용한 "더 맵게" 문제 해결법 프로그래밍 문제 해결에 있어 데이터 구조의 선택은 효율성을 결정짓는 중요한 요소입니다. "더 맵게" 문제는 스코빌 지수를 조작하여 문제의 요구사항을 충족시키는 최소 횟수를 찾는 과정에서, 시간 복잡도를 줄이기 위한 적절한 데이터 구조의 필요성을 강조합니다. 이 글에서는 초기 접근 방법의 문제점과, 최소 힙(MinHeap) 구조를 이용한 해결 방안을 소개하고자 합니다. 코딩테스트 힙 문제 ▼ 더 맵게 문제 ▼ 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr "더 맵게" 문제는 프로그래밍 테.. 2024. 3. 19.
코딩테스트 큐(queue) 문제 - 기능개발 풀이 과정 및 코드 리팩토링 코딩테스트 큐(queue) 문제 - 기능개발 풀이 과정 및 코드 리팩토링 프로젝트의 성공적인 완성을 위해서는 각 기능의 개발 및 배포가 중요한 역할을 합니다. 특히 현대의 소프트웨어 개발 과정에서는 여러 기능이 동시에 개발되며, 이들의 개발 속도와 배포 순서가 프로젝트 진행에 큰 영향을 미칩니다. "기능개발" 문제는 이러한 현실적 상황을 반영한 프로그래밍 문제로, 각 기능의 개발 진도와 속도를 고려하여 배포 순서와 각 배포마다 몇 개의 기능이 완성되는지를 예측해야 합니다. 이 글을 통해 문제를 해결하는 과정을 살펴보면, 효율적인 프로젝트 관리와 개발 스케줄링에 대한 인사이트를 얻을 수 있습니다. 코딩테스트 큐 문제 - 기능개발 ▼ 문제 직접 확인해보세요! ▼ 프로그래머스 코드 중심의 개발자 채용. 스택 .. 2024. 3. 15.
1974. Minimum Time to Type Word Using Special Typewriter 1974. Minimum Time to Type Word Using Special Typewriter 특별한 원형 타자기에서 문자를 입력하는 과정은 일상의 타이핑과는 사뭇 다른 경험을 제공합니다. 이 가상의 타자기는 영문 소문자 'a'부터 'z'까지를 원형으로 배열해 놓았고, 문자를 입력하기 위해서는 포인터를 해당 문자에 정확히 맞춰야만 합니다. 여기서는 문자 입력에 드는 최소 시간을 계산하는 문제를 다룹니다. 이 글을 통해 효율적인 알고리즘 설계의 중요성과, 각 문자 간의 거리를 계산하는 흥미로운 방법을 배울 수 있을 것입니다. 코딩테스트 문제 해결 과정 "1974. Minimum Time to Type Word Using Special Typewriter" 문제는 특별한 타자기를 사용하여 단어를 입력.. 2024. 3. 15.
코딩테스트 스택(stack) 문제 - 같은 숫자는 싫어 해결 과정 코딩테스트 스택(stack) 문제 - 같은 숫자는 싫어 해결 과정 우리는 일상 생활 속에서도 불필요한 중복을 피하려는 경향이 있습니다. 이는 프로그래밍에서도 마찬가지로, 특히 배열과 같은 데이터 구조를 다룰 때 연속적인 중복을 제거하는 것은 메모리 효율성과 처리 속도를 높이는 데 중요합니다. "같은 숫자는 싫어" 문제는 이러한 중복 제거의 기본 원리를 이해하고, 실제로 적용해볼 수 있는 좋은 예시를 제공합니다. 이번 글에서는 문제 해결 과정을 통해 배열을 효율적으로 다루는 방법을 배우고, 이를 다양한 프로그래밍 상황에 적용하는 방법에 대해 알아보겠습니다. 코딩테스트 스택 문제 - 같은 숫자는 싫어 ▼ 직접 풀어보고 오세요 ▼ 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의.. 2024. 3. 14.
2619. Array Prototype Last 문제 소개, 풀이 과정 및 코드 리팩토링 2619. Array Prototype Last 문제 소개, 풀이 과정 및 코드 리팩토링 자바스크립트의 배열은 매우 강력한 데이터 구조 중 하나입니다. 하지만 때때로 우리는 배열의 마지막 요소에 쉽게 접근하고 싶어 할 때가 있습니다. 표준 배열 메서드만으로는 이 기능이 직관적이지 않을 수 있기에, 배열의 마지막 요소를 쉽게 얻을 수 있는 .last() 메서드를 구현하는 방법에 대해 알아보겠습니다. 이 글을 통해 자바스크립트의 프로토타입을 활용한 강력한 확장성에 대해서도 이해할 수 있을 것입니다. 2619. Array Prototype Last 문제 소개 배열에 .last() 메서드를 추가하여, 이 메서드를 호출할 때마다 배열의 마지막 요소를 반환하도록 하는 기능을 구현해야 합니다. 배열이 비어있다면 -1.. 2024. 3. 13.
코딩테스트 해시(hash) 문제 - 완주하지 못한 선수 문제 원리 및 풀이 코딩테스트 해시(hash) 문제 - 완주하지 못한 선수 문제 원리 및 풀이 마라톤 경기는 참가자 모두에게 도전의 장입니다. 하지만, 모든 참가자가 완주하는 것은 아닙니다. 프로그래밍 문제로 치면, 이러한 상황은 배열과 해시 맵을 활용해 해결할 수 있는 좋은 예입니다. 이번 글에서는 마라톤에 참가했지만 완주하지 못한 한 명의 선수를 찾는 문제를 통해, 배열과 해시 맵의 활용 방법을 소개합니다. 문제 해결 과정을 통해, 여러분은 데이터 구조의 중요성과 함께, 문제를 효율적으로 해결하는 데 필요한 알고리즘적 사고를 배울 수 있을 것입니다. 이 지식은 여러분이 앞으로 맞닥뜨릴 수 있는 다양한 프로그래밍 문제를 해결하는 데 큰 도움이 될 것입니다. 코딩테스트 해시 문제 - 완주하지 못한 선수 문제 소개 프로그래머.. 2024. 3. 11.