728x90

전체 글 151

SQL 고득점 KIT 오답노트

SELECT SELECT > 조건에 맞는 회원 수 구하기 나이 20 ~ 29 사이 -> BETWEEN ~ AND ~ 2021년에 가입한 회원 수 구하기 -> 나는 DATE에서 년도만 필요하기 때문에 YEAR() 활용 SELECT COUNT(*) AS USERS FROM USER_INFO WHERE AGE BETWEEN 20 AND 29 AND YEAR(JOINED) = 2021; SELECT > 12세 이하인 여자 환자 목록 출력하기 TLNO가 NULL이면 'NONE'으로 출력해야 한다는 조건이 있다 -> IFNULL(컬럼명, 대체문자) 활용 SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO FROM PATIENT WHERE GEND_C..

기타 2023.11.24

백준 #2179 비슷한 단어

문제를 너무 단순하게 생각했었다 반례 보면서 열심히 수정함 내가 간과한 것들 1. 길이는 같지만 문자는 다른 접두어가 여러개 있을 수 있음 2. 나는 단어들을 sort 하고 오로지 인접한 단어만 있다고 생각했는데, 세개 이상 같은 경우일 수도 있음 ex) aaa aac aab 이 경우 sort하면 aaa aab aac 순서이지만 우선순위는 원본 순서이기 때문에 정답은 aaa aac가 된다 그래서 prefix_arr 에 최장길이의 접두어들을 저장해놓고(한개일수도 있고 여러개일수도 있음) 다시 원본 리스트에서 각 접두어를 포함하는 단어를 접두어별로 구분해서 index 모아놓음 그 중 제일 작은 index 포함하고 있는 리스트에서 맨 앞 두개가 정답이다 n = int(input()) arr1 = [] for ..

DP - LIS 최장증가부분수열

DP로 최장증가부분수열 구하기 Longest Increasing Subsequence python 방법은 두가지가 있다 하나는 이중 for문을 사용해서 o(n^2) 다른 하나는 이분탐색을 사용해서 o(nlogn)이 된다 1. o(n^2) 방법 dp배열: dp[i]를 포함한 LIS 길이 -> dp 배열 만들고 모두 1로 초기화로 시작 - 이중 for 문 -> 현재위치(i)와 이전에 있는 원소들 크기 비교 - 이전에 있는 원소가 작은경우 -> dp[i]와 dp[j]+1 중 더 큰것이 dp[i] - dp배열의 최댓값이 LIS 길이 for i in range(len(arr)): for j in range(i): if arr[j] < arr[i]: dp[i] = max(dp[i], dp[j]+1) 2. o(nlo..

[TIL] 11.20 ~ 11.26

11.20 #6550 input의 갯수가 정해지지 않은 상태에서 계속 입력받기 어떻게 멈추는가~~~? 1. sys.stdin.readline()사용 input()은 공백을 입력받으면 eof 에러가 발생하는데 sys.stdin.readline()는 공백을 입력받으면 빈 문자열로 받는다고 한다! 그렇기때문에 이 방법 사용 가능 while True: st = sys.stdin.readline() if st == '': break 2. try ~ except 사용 while True: try: st = input() ... except: break #1027 기울기 = y변화량/x변화량 음수양수 구분 잘하기 11.21 #2631 옮기는 아이의 수를 최대한 적게 해야하는데 어떤 기준으로 아이를 골라야 할지 모르겠..

Today I Learned 2023.11.20

[TIL] 11.13 ~ 11.19

2023.11.13 ~ 2023.11.19 11.13 월 😀 파이썬 출력 포맷팅 정수 %d 문자열 %s 소수점 3자리까지 %0.3f print("문자열 %s 문자열" %출력값) print("문자열 %s %d %s " %(1번째, 2번째, 3번째)) print("{0} 문자열".format(출력값)) print("{0} {1} 문자열".format(출력값1,출력값2)) 😀 프로그래머스 - lv.3 단어변환 (BFS/DFS) 내가 처음 생각한 방법: DFS 스택 활용 그리고 문제를 제대로 안읽었었다!!! begin은 아니지만 target은 words 안에 존재해야함 더 좋은 방법: BFS 큐 활용 -> 최단거리 구하는 것의 일종임! [단어, 깊이] 형식으로 큐에 넣기 어려운점...-.- 순서가 상관이 없나...

Today I Learned 2023.11.13

[프로그래머스] 모음사전

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. 하... 개킹받게 엉뚱한..

[프로그래머스]해시-전화번호 목록

https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아무래도 해시 카테고리에 있는만큼 효율성을 위해 이중for문은 최대한 안쓰려 했다 그랬더니 도저히 모르겠어!!!!!!!!!!!! 해시니까 딕셔너리를 써야하나 싶다가 결국 다른 풀이를 참고했다 헐~ 근데 원리는 그냥 리스트를 이중for문 돌리는거랑 같은데 단지 탐색 전에 리스트를 set자료형으로 변경하는 절차가 있다는 점이 달랐다 답 def solution(phone_book): setbook = ..

[프로그래머스] 짝지어 제거하기

https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에는 while문과 for문을 활용해서 s[i] == s[i-1]를 비교해서 같으면 제거하고 제거한 리스트에서 다시 또 비교하는걸 반복했다 그랬더니 아뿔싸 시간초과 질문게시판 들어갔다가 스택이라는 글자를 봐버렸다 이 힌트 없었으면 못풀었을듯 이런생각 어떻게 하는거야~~~ 스택을 만들어서 top과 같은문자면 pop 같은문자가 아니면 push 반복해서 성공적으로 수행가능한 경우면 스택이 텅 비어있..

Jadencase

공백이 여러개일경우 -> 공백 하나는 구분용 나머지 공백은 문자한칸 취급하여 첫 글자로 취급 -> if else 조건 추가, 앞이 공백인 경우에도 대문자변경X 그대로 추가 하씨발 또틀림!!!!!!!!!!!!!!!!!!!!!!!! 알아야할것 -> upper에 숫자 들어가면 그냥 알아서 무시함 오류안생김 내장함수 capitalize() -> 문제 그대로 조건 반영함...Apple , 1apple # 1. if word != False: if word != False: # 'word'가 'False'와 동등하지 않은 경우에 실행 # 'word'가 'False'와 동등하지 않은 모든 값(예: True, 0, 1, 문자열 등)에 대해 실행됨 # 2. if word: if word: # 'word'가 참 (Trut..

파이썬 람다를 활용한 다중조건 정렬

백준 20920 영단어 암기는 괴로워 정렬 조건이 있다. 자주 나오는 단어일수록 앞에 배치한다. 해당 단어의 길이가 길수록 앞에 배치한다. 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다 어떻게 정렬해야하나 고민했는데 람다를 활용하면 단 한줄로 편하게 정렬할 수 있다!!!!!! dic_arr=sorted(dic_arr.items(),key=lambda x:(-x[1],-len(x[0]),x[0])) dic_arr = {'단어':등장횟수} 상태 key=lambda x:(-x[1],-len(x[0]),x[0]) 첫번째 조건: 등장횟수(value)가 높은 순서대로 -> -x[-1] 두번째 조건: 단어(key) 길이가 긴 순서대로 -> -len(x[0]) 세번째 조건: 단어(key) 알파벳 사전 순 ->..

카테고리 없음 2023.10.08
728x90