전체 글 217

5월 1주차 WIL

휴일이 많아서 그런지 유난히 빨리 흘러간 1주일이다. 정말 이렇게 빨리 흘러가도 되나?라는 한 주였는데, 사실 AWS를 듣는 기간이지만 AWS보다는 주특기에 집중한 한 주였다. 그와 동시에 팀으로서의 의미를 보다 살리기 위해 팀장님 중심으로 팀이 함께 움직이는 활동을 많이 했다. 개인 컨디션 이슈와 준비 미흡으로 아쉽게 모두 해내진 못했지만, 그래도 시도를 했다는 점에서 다음에 보다 착실하게 준비할 여지를 얻었다. DRF 팀 복습 우선 DRF는 최종프로젝트까지 우리가 주특기로 쭉- 해내야 하는 것이기 때문에 지금 미리 기틀을 잡아놓지 못하면 캠프 수료 때까지 계속 고생하게 될 것이라는 것을 느꼈다. 그리고 당장 다음 주 팀 과제에서도 비중이 적고, 팀원 모두가 고생하는 결과를 낳을 수 있기 때문에 각자 ..

Weekend I learned 2023.05.08

LV.2 영어 끝말잇기

코딩테스트 연습 - 영어 끝말잇기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 : 이전에 등장한 단어는 안 됨(이전 등장 단어 리스트에 있으면 안 됨), len > 1 return : 탈락하는 사람의 번호(list % n), 몇 턴에 탈락하는지?(list // n)를 리스트로 반환 직전 단어의 끝 글자와 다음 단어의 첫 글자가 같아야 한다는 조건을 활용하는 방법에서 어제 공부한 stack을 이용해야겠다는 생각을 했다. stack을 이용하니 한결 쉽게 해결되는 것을 볼 수 있다. answer에..

cording test 2023.05.07

LV.1 기사단원의 무기

코딩테스트 연습 - 기사단원의 무기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 레벨 1이라기엔 풀어야 할 코드가 꽤나 많아서 시간이 다소 걸렸고, 인자들의 범위가 넓었기 때문에 시간복잡도 역시 신경써야 하는 문제다. 인자가 리스트값이었기 때문에 리스트를 사용해서 접근했다. 제곱근이 겹친 채 list_에 들어가기 때문에 set함수를 통해 중복되는 집합 없애기 limit을 넘을 경우/넘지 않을 경우로 나누어서 for문 설정 def cd(n): # 약수 출력 list_ = [] for i in ran..

cording test 2023.05.07

LV.0 다음에 올 숫자

코딩테스트 연습 - 다음에 올 숫자 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 등차수열( +-)과 등비수열(*/)의 특징을 살려서 다음과 같이 해결 def solution(common): one, two, three = common[:3] if two - one == three - two: result = common[-1] + (two-one) elif two // one == three // two: result = common[-1] * (two//one) return result

cording test 2023.05.07

LV.2 괄호 회전하기

코딩테스트 연습 - 괄호 회전하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2레벨 문제.. 사실 겁나게 힘들었다. 이번 문제에서 스택의 중요성을 느껴서 공부하게 된 계기가 되었다. def solution(s): answer = 0 for _ in s: # _는 이 값을 활용하지 않겠다는 뜻 s=s[1:]+s[:1] # slice 함수 사용 a=s # 기존 s에 영향을 주지 않기 위해, 판별만을 위한 또다른 객체 생성 while "()" in a or "[]" in a or "{}" in a: ..

cording test 2023.05.07

LV.1 예산

코딩테스트 연습 - 예산 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 레벨 1치곤 매우 쉬웠던 것이.. 예산이 가장 적은 곳부터 지원해주면 result 값이 가장 클 것이라고 생각했다. def solution(d, budget): answer = 0 d.sort() # 예산 크기를 순차적으로 빼오기 위해 sort for i in d: if budget - i >= 0: budget -= i answer += 1 return answer

cording test 2023.05.07

LV.1 둘만의 암호

코딩테스트 연습 - 둘만의 암호 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 정말 배울 게 많은 문제였다. 팀원에게 설명하면서 스스로도 생각을 많이 해보고, 다른 사람의 코드를 보면서도 많이 배운 문제였다. # 네비게이터로 참여한 문제 # 팀원 분의 문제 접근 방식 # 문자열skip에 포함되어 있는 알파벳은 순서에서 제외 # 문자열s의 각 알파벳 판별 for문 # index만큼의 뒷순서 알파벳으로 반환 # z를 넘어가면 다시 a부터 시작 # 결과값 리턴 def solution(s, s..

cording test 2023.05.03

파이썬 포멧팅 %, {}, f-string

자잘한 프로젝트, 알고리즘 문제를 풀어보면서 느끼는 것이지만, 포멧팅에 대해 정리가 잘 안 되어서 여러 번 찾다 보니 그냥 공부하기로 마음먹었다. 새벽까지 깨어있을 만큼 공부해야 하는 것들이 참 많지만.. 그럼에도 이번 주제는 정리해야겠다는 생각이 확실히 들어서! 문자열 포멧팅이 무엇일까? 문자열 포맷팅(string formatting) : 문자열 속 특정한 위치에 특정한 값을 삽입해 주는 것. 만약에 문자열 중에 일부가 변할 수 있는 가능성이 있는 경우 문자열 포맷팅을 통해 그 부분만 바꿔줄 수 있다. 밑줄 그은 부분이 핵심이다. 알고리즘 해결과정에서 특히 중요하다고 생각하는데, 프로젝트에서도 간혹 써먹을 것 같다. % 우리가 써먹는 방식은 주로 f-string이었지만, %을 통한 format도 있음을..

언어/Python 2023.05.03

LV.1 비밀지도/ 파이썬 bin함수 / zfill 함수

코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카카오 코테 문제로 나왔던 문제.. 물론 1번 문제였겠지만 생각보다 어려웠어서 놀랐다. 이번 문제는 팀원 네 명이서 같이 풀었는데, 이진수 함수를 사용하지 않으면 문제해결에 상당히 곤혹을 겪을 것이라고 조언을 받아서 미리 bin 함수를 공부했다. 또한 문제를 푸는 과정에서 zfill함수도 알았는데, 활용도는 낮은 것 같지만 우선 공부해두었다. bin(binary): 십진수의 숫자를 이진수로 바꿔주는 함수 상당히 간단..

cording test 2023.05.02

시간복잡도/공간복잡도/점근표기법

작년 학교 강의를 통해서 알고리즘을 조금 찍먹만 해보았지만, 이 3가지 개념은 정말 수업 내내 나타났기 때문에 이번에는 제대로 공부하고 정리해보았다. 시간 복잡도 개념 시간 복잡도란? : 알고리즘이 문제를 풀기 위한 시간(혹은 연산)을 말한다. 단어로 말하자면 "수행시간" 우리가 프로그래머스에서 문제를 풀 때 문제를 해결하는 시간이 아래에 뜨는데, 이것이 시간복잡도를 간접적으로 나타내어 준다. 테스트 1의 0.03ms가 내 코드의 시간복잡도이다. 참고로 옆의 10.2MB는 공간복잡도! 시간 복잡도 풀이법 그렇다면 이 시간복잡도는 어떤 방식으로 구하는 걸까? 아래의 예시를 보면 금방 이해될 것이다. for num in array: # array 의 길이(N)만큼 아래 연산이 실행 for compare_nu..