본문 바로가기

개발일지

(122)
TIL 23-04-07 1.프로그래머스 입문 - 2차원으로 만들기 문제점 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. # num_list를 n개씩 묶어서 answer로 return # 2중 for문으로 num_list와 n을 실행? # while문으로 num_list만큼 돌리고 # reverse() 쓰고 # for문으로 n만큼 pop() # num_..
TIL 23-04-06 https://github.com/sdoram/sparta_project/tree/main/personal_Django_project_1 1. Django - 개인 과제 문제점 회원가입 기능 먹통 로그인 기능 구현 , 로그인 시 url 이동 로그아웃 기능 구현 시도해 본 것들 views.py from django.contrib.auth import login, logout, authenticate from django.contrib.auth.forms import UserCreationForm, AuthenticationForm from django.shortcuts import render, redirect from django.http import HttpResponse from django.cont..
TIL 23-04-05 1. 프로그래머스 LV1 - 콜라츠 추측 문제점 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단,주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. # 입력된 수를 짝수, % 2 1: answer += 1 # 짝수일 때 if num % 2 == 0: num = num % 2 else: num = num * 3 + 1 if answer == 500: return -1 else: continue return answer 반복문이 바로 멈추는 현상 ..
TIL 23-04-04 https://github.com/sdoram/Algorithm 1. 프로그래머스 LV2 - 최솟값 만들기 문제점 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) # A, B = 자연수 # A와B 에서 각각 하나씩 뽑아서 곱하는 걸 누적 # 누적 결과값을 최소로 만들기 # 그럼 A의 최댓값과 B의 최솟값을 곱하는 형식으로 만들어야 할 듯 sort와 reverse사용 문제..
TIL 23-04-03 1. 스파르타 알고보면 알기쉬운 알고리즘 강의 - 1주차 숙제 문제점 input = "011110" def find_count_to_turn_out_to_all_zero_or_all_one(string): result = find_count_to_turn_out_to_all_zero_or_all_one(input) print(result) 최소한으로 숫자를 뒤집는 방법을 알고리즘으로 만들어야 한다. 시도해 본 것들 # 0으로 뒤집은 경우, 1로 뒤집은 경우를 세기 위한 count # for문을 돌면서 0이면 1로, 1이면 0으로 바꾸는 for문 각각 작성 # 밑에서 for문으로 if i == i[+1]: 바꾸고 아니면 break같은 방법 def find_count_to_turn_out_to_all_zer..
WIL 23-04-02 1. 알고리즘 공부 한 주 동안 있었던 일 시간복잡도를 알게 되면서 기존에 내가 알고리즘을 풀면서 반복문 사용으로 아쉬웠던 점을 명확히 알게 됐다. 딕셔너리를 매우 제한적으로 사용해 봤다. 어설프지만 주석을 작성하며 코드 작성 전 생각하는 시간을 가졌다. 있었던 일에 대한 생각 내장 함수로 시간 복잡도를 최소화하는 것도 중요하지만 아직은 기본적인 코드로 만들면서 시간 복잡도를 최소화하는 작업에 익숙해져야 할 것 같다. 딕셔너리의 key와 value를 통해서 기존의 내 방식이라면 반복문이 등장할 부분을 줄일 수 있었다. 더 익숙해진다면 코드의 효율성뿐만 아니라 가독성 또한 크게 증가할 것으로 기대된다. 특강에서 주석을 통해서 먼저 구현할 기능을 작성하고 시작하는 것을 보면서 무작정 시작하고 그 뒤의 코드 ..
TIL 23-04-02 1. 프로그래머스 알고리즘 문제 LV2 - JadenCase 문자열 만들 문제점 # JadenCase 문자열 만들기 # 문제 설명 # JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) # 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. # 제한 조건 # s는 길이 1 이상 200 이하인 문자열입니다. # s는 알파벳과 숫자, 공백문자(" ")로 이루어져 있습니다. # 숫자는 단어의 첫 문자로만 나옵니다. # 숫자로만 이루어진 단어는 없습니다. # 공백문자가 연속해서 나올 수 있습니다 공백..
TIL 23-04-01 1. 프로그래머스 LV2 - 최댓값과 최솟값 문제점 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 시도해 본 것들 공백 제거 후 숫자만 추출