본문 바로가기

컴퓨터공학/자료구조&알고리즘

코딩테스트> 기본 자료 구조와 정렬 연습문제

백준 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: '' 오류가 나는데

다른 인터프리터에서는 잘 작동된다.