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
옮기는 아이의 수를 최대한 적게 해야하는데
어떤 기준으로 아이를 골라야 할지 모르겠음
문제 설명의 예시에서 왜 굳이 4번을 맨 처음으로 골랐을까... 뚫어져라 보다가
DP랑 계속 연관지어 보니 갑자기 최장증가수열 알고리즘을 활용해서 아이를 고른것 같았다!!!
나는 DP에 취약하기 때문에 LIS부터 다시 공부하기로 했다...
DP - LIS 최장증가부분수열
DP로 최장증가부분수열 구하기 Longest Increasing Subsequence python 방법은 두가지가 있다 하나는 이중 for문을 사용해서 o(n^2) 다른 하나는 이분탐색을 사용해서 o(nlogn)이 된다 1. o(n^2) 방법 dp배열: dp[i]를
calen.tistory.com
11.22
카카오 2021 테크인턴 코테 기출문제
2, 3번 타이머 맞춰서 풀어봄
3. 표 편집
처참한 점수 6점...^^;;;
내가 푼 방법
쓸데없는 변수를 너무 많이 만들었음
특히 직접 삭제하고 붙이고 너무 구체적으로 구현
now, stack, arr, temp, idx, value
해설
arr = [1,1,1] 삭제여부
now 현재 선택된 번호
stack 삭제한것 저장
확실히 불필요한 변수가 줄었다
U X : 삭제되지 않은 것만 X개 만큼 위쪽으로 now 이동
D X : 삭제되지 않은 것만 X개 만큼 아래쪽으로 now 이동
C : 삭제 arr[now] = 0, 스택에 index 번호 저장 / now 변경 -> 맨 끝일 경우에는 위로
Z: 스택에 있는 삭제된 index를 arr[] = 1로 변경
- U, D, C: 최악의 경우 O(n)
- Z: O(1)
해설2 효율성 측면에서
연결리스트(Linked list) 사용!!!
연결리스트의 특성 때문에 중간에 뭐가 사라져도 앞뒤끼리 노드를 잇는다
- U, D: O(X)
- C: 선택된 노드와 그 노드의 앞뒤로 연결된 노드들의 링크 정보만 변경해 주면 되기 때문에 O(1)
- Z: 삭제된 노드 정보를 스택에 담아 두면 나중에 해당 노드에 O(1)에 접근하여 링크 정보 복구 가능
11.23
오늘은 SQL 데이~~
프로그래머스 sql 고득점 kit
11.24
MYSQL 에는 FULL OUTER JOIN이 없어서 UNION을 사용해야 한다
SQL 고득점 KIT 오답노트
SELECT SELECT > 조건에 맞는 회원 수 구하기 나이 20 ~ 29 사이 -> BETWEEN ~ AND ~ 2021년에 가입한 회원 수 구하기 -> 나는 DATE에서 년도만 필요하기 때문에 YEAR() 활용 SELECT COUNT(*) AS USERS FROM USER_INFO WHERE AGE B
calen.tistory.com
11.25
'Today I Learned' 카테고리의 다른 글
[TIL] 11.13 ~ 11.19 (0) | 2023.11.13 |
---|