전체 글

    [Django] 개발 흐름

    Django의 개발 흐름 점프 투 장고로 장고를 공부하다 보니, 구동 방식이나, 흐름이 헷갈려 정리하고자 글을 쓰고자 한다. 맵핑 과정 위에 소개한 책 '점프 투 장고'에 나온 예시대로 설명을 해보겠다. 애플리케이션 중 'pybo'가 있다고 하자. pybo는 QnA 게시판이다. 맵핑 과정을 간략하게 정리해보자. 127.0.0.1:8000/pybo에 접속하는 경우 1. ./config/urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('pybo/', include('pybo.urls')), ] pybo/ 주소가 오게 되면..

    [프로그래머스 C++] 최댓값과 최솟값

    문제 : 최댓값과 최솟값 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최솟값과 최댓값을 찾아 이를 (최소값) (최댓값) 형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 분석 형변환만 유의하면 되는 문제이다. stoi()함수가 "-1"도 정상적으로 -1로 인식하므로 특별히 어려운 부분은 없다. 만약 형변환 없이 하게 되면, 정렬할 때 compare 부분을 새로 정의해야 한다. 새로운 정의 없이하면 음수만 있을 때 문제가 발생한다. 사전순이기에 절댓값으로 정렬한 꼴이 된다..

    [프로그래머스 C++] 이진 변환 반복하기

    문제 : 이진 변환 반복하기 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 c를 2진법으로 표현한 문자열로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 1이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어..

    [프로그래머스 C++] 숫자의 표현

    문제 : 숫자의 표현 문제 설명 Finn은 요즘 수학 공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현하는 방법이 여러 개라는 사실을 알게 되었습니다. 예를 들어 15는 다음과 같이 4가지로 표현할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 제한사항 n은 10,000 이하의 자연수 입니다. 분석 규칙이 있나 생각하면 어려워지는 문제이다. 아무리 생각해도 명쾌한 규칙이 안 떠오른다. 하지만 제한 사항을 보면 10,000 이하의 자연수이다. 즉, 무식하게 푸는 방법이 정법..

    [프로그래머스 C++] - 폰켓몬

    문제 : 폰켓몬 문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) ..

    [프로그래머스 C++] 땅따먹기

    문제 : 땅따먹기 문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네 번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최댓값을 return하는 solution 함수를 완성해 주세요. 위 예의 경우,..

    [프로그래머스 C++] 다음 큰 숫자

    문제 : 다음 큰 숫자 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 개수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수입니다. 분석 맨 처음 나는 이진수로 바꾸고 규칙을 찾아 바꾼 이진수 내에서 조건에 맞는 다음 큰 숫자를 찾으려고 했다. 예를 들어 110(..

    [프로그래머스 C++] 올바른 괄호

    문제 : 올바른 괄호 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 분석 소괄호 짝만 맞추면 되는 간단한 문제이다. 스택을 이용하면 된다. 구현 using namespace std; bool s..