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부터 다시 공부하기로 했다...
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을 사용해야 한다
11.25
'Today I Learned' 카테고리의 다른 글
[TIL] 11.13 ~ 11.19 (0) | 2023.11.13 |
---|