백준 2920 문제
이게 머리속에는 풀이가 생각나는데
파이썬 문법이 익숙하지 않아서 처음부터 막혔다..
바로 list와 map을 이용해서 사용자에게 입력받는 구문을 몰랐다.
다음부터는 알도록 하자.
그랬더니 런타임 에러가 났다..
왜 문제인가 봤더니 인덱스 에러
그래서 바로 고쳤다.
map 함수란..
map()은 반복 가능한 객체(리스트 등)에 대해 각각의 요소들을 지정된 함수로 처리해주는 함수입니다.
백준 2798 문제
나는 이런 문제를 풀 때 그냥 언저리 값 대충 때려잡아서 3장 고른 다음에
값이 비슷해질 때까지 더하거나 빼서 맞춘다.
근데 컴퓨터는 사람이 아니잖아.. 이걸 코딩으로 어떻게 구현해야할 지 생각을 많이했다..
그러다가 너무 복잡한 거 같아 다르게 생각했다.
컴퓨터는 단순반복을 잘하니까 그냥 모든 경우의 수를 계산하고
거기서 가장 차이가 적은 값을 고르자 라고 생각했다.
그래서 삼중for문을 생각했는데 아이디어가 맞았다.
문제는 이걸 코딩 구현에 또 문제가 생겼다...
max 함수가 있는 걸 몰랐다..
그리고 편리하게 입력 받은 것을 두 개로 나눌 수 있는 것도..
다음엔 비슷한 내용이 나오면 꼭 사용하자..
max 함수
백준 1874
join 함수
리스트 요소를 합쳐서 하나의 문자열로 반환하는 함수이다.
''.join(리스트) 는 ['a','b','c'] 리스트를 'abc'로 바꾸고
'구분자'.join(리스트) 는 ['a','b','c'] 리스트를 'a구분자b구분자c' 로 반환한다.
백준 1966번
enumerate 함수
순서와 값을 전달하는 함수이다..
lambda 함수
백준 5397
백준 10930
해시함수
백준 1920
백준 4195
백준 2750
insert(위치, 값)
백준 1427
백준 10814
백준 11650
백준 10989
input으로 사용하면 시간초과가 된다. pypy3로 바꿔도 메모리 초과가 된다.
그래서 sys.stdin.readline()으로 해야한다.
하지만 str으로 인식해서 int로 형변환해야 한다.
str로 인식하는 이유는 개행문자도 인식하기 때문인 것 같다.
그러나 주피터노트에서는 invalid literal for int() with base 10: '' 오류가 나는데
다른 인터프리터에서는 잘 작동된다.
'컴퓨터공학 > 자료구조&알고리즘' 카테고리의 다른 글
자료구조> 기본 (0) | 2021.05.15 |
---|---|
코딩테스트> 고급 정렬 알고리즘 연습문제 (0) | 2021.05.05 |
알고리즘> 고급> 분할정복법> 퀵정렬 (0) | 2021.03.12 |
알고리즘> 그래프> 너비 우선 탐색(BFS) / 깊이 우선 탐색(DFS) (0) | 2021.03.12 |
알고리즘> 탐욕 알고리즘 (0) | 2021.03.12 |