전체 글 27

문자열 밀기 ☑️

1. Calrifying Question 한번에 하나씩만 옆으로 밀어서 만들 수 있다는 것? 대문자이면 다른 언어로 생각하는 건가? 일단 문제에 모두 소문자로 이루어져있다고 되어있음 미는 것을 어떻게 구현 할 것인가 2. Optimized solution 다시 원문 워드로 돌아올 때까지만 확인해야 한다는 점 밀어주기 구현 하나씩 다 땡기는.... 3. Code [내 시도 >> 완전 멸망] def solution(A, B): answer = 0 listA = list(A) cnt = len(listA) print(cnt) for j in range(cnt): for i in range(cnt): if i == cnt - 1: listA[0] = listA[-1] else: listA[i + 1] = lis..

종이 자르기

1. Clarify Questions 정사각형이 아니라 직사각형 일 수도 있는 것인가? 예시 보니 그럼 M = 세로, N = 가로 개수라고 가정, 여러가지 그려보닌 중요한건 크게 한버네 자르는 것들이 있으면 된 2. Optimized solution 나는 세로 개수 기준(가로로 잘라야할) 으로 먼저 잘라 줄 것임 (그다음 잘려진 개수) * (세로로 잘라야할 개수) 3. Code def solution(M, N): answer = 0 answer = (M-1) + M * (N-1) return answer

연속된 수의 합

1. Clarifying Questions/idea 음수도 포함이 되는가? 예시 보니 그러하다 연속된 수들이니까 1씩 차이가 남 홀수개 : 1,2,3,4,5 >> 합은 사실 (가운데수) *((num / 2 )*2 + 1) 짝수개: 2,3,4,5 >> (처음과 끝수 더한 합) * (num/2) 2. Get to the most Optimized solution num이 홀수인지 짝수인지 구분 홀수 일때 구현 - mid 변수를 구해서 -1 씩 빼주는 짝수 일때 구현 - (처음과 끝수의 합)을 구하고 차이만큼 빼서 첫번째 수 찾기 3. Code def solution(num, total): answer = [] if (num % 2 == 0): firstLast = total / num * 2 firstNum..

다음에 올 숫자

1. Clarify Questions / Idea 리스트로 매개변수에 저장하는 것인가? 예시 보니 그러하다 음수도 다 포함해서 생각? 당근 어떻게 해서 주어진 숫자들을 보고 등차인지 등비인지 알 수 있을까? 등차 같은 경우: 리스트 옆에 있는 숫자들끼리 빼본다 차가 같은면 등차임을 알 수 있다 그렇다면 차가 일정하지 않으면 등비라고 생각하기? 즉 등차 등비 외에는 둘다 아닌 경우에 대해서는 나오게 될것인가? 등비임을 판단하면 그냥 바로 첫번째 두번째 수를 나눔으로서 공비를 확인할 수 있다. 리스트는 등차라면 모두 등차인것이가? 예외인 숫자는 없는 거겠지? 그러면 세개의 숫자만 확인하고 구할 수 있으니까 그렇다면 리스트 안에는 최소 3개는 들어가 있어야겠지? 2. Get to the most Optimiz..

옹알이(1)

인생 첫 코딩테스트 도전기의 첫 번째 문제 난이도 하 인데도 못풀어서 여러 블로그들 찾아보았고 여러가지 중 이 답이 제일 깔끔한 것 같아서 이걸로 배움!! 저런 생각은 처음부터 어떻게 할 수 있지? (1) 리스트에 있는 단어들을 먼저 불러오고 (2) 단어들의 각 문자열을 차례대로 새로운 변수에 저장하는데 (3) 차례대로 저장하다가 'aya', 'ye', 'woo', 'ma' 중에서 같은 형식이 나오면 변수를 비워주고 cnt 변수에 +1 하여 옹알이가 가능함을 보여줌 def solution(babbling): answer = 0 for i in babbling: cnt = 0 word = '' for j in i: word += j if word in ['aya', 'ye', 'woo', 'ma']: cn..