Python 91

[백준/알고리즘/python/java] 5464번 - 주차장

차근차근 문제에서 주어진 로직을 풀어보면, 그다지 어렵지 않은 문제였다. 문제의 로직은 따로 설명하게 없을 정도로, 문제에서 주어진 대로 그대로 구현하면 다들 풀 수 있을 것이다. 처음 입력받는 N과 M은 각각 '주차장 공간의 수'와 '차량의 수'이다. 모든 차량은 한 번씩 주차장에 들어갔다가 나오므로 (차량의 수 *2) 만큼의 출입 순서를 입력받아야 했다. 우선 index오류를 막기 위해, '요금을 나타내는 리스트'와 '각 차량의 무게를 나타내는 리스트'를 빈 리스트 [] 가 아닌 [0]으로 시작했다. 들어오는 출입 순서를 덱으로 큐화 시켰다. popleft()를 쓰기 위함이다. 이 출입리스트가 빌 때 까지, 계산을 반복한다. 이 문제에서 생각해야 할 관건은 크게 2가지만 생각해주면 됐다. 주차 가능한..

2차원 배열에서 최댓값 찾기

우리는 코딩을 하면서 또 알고리즘 문제를 풀면서, 2차원 배열을 정말 많이 쓴다. 2차원 배열을 한줄로 빠르게 생성하는 List Comprehension을 종종 사용하곤 하는데, 그러면 2차원 배열에서 어떤 원소값이 가장 큰 값인지 한번에 찾는 방법은 없을까? 물론, for문으로 배열을 돌면서 입력값 하나하나를 비교해가면서 찾을 수야 있겠지만, 빠르게 찾는 방법이 있으니까 한번 배워보자. ◆ max 값을 사용하면 되는 것 아닐까? vertices = [[1, 7, 12], [4, 7, 13], [1, 5, 17], [3, 5, 20], [2, 4, 24], [ 1, 4, 28], [3, 6, 37], [5, 6, 45], [2, 5, 62], [1, 2, 67], [5, 7, 73]] numvert = ..

파이썬 기본_1

파이썬에 대해 우리는 파이썬 3.x 버전을 사용한다. 파이썬 3버전에서의 문법을 숙지하자. 출력 - 가장 먼저 출력을 하기 위해, 컴퓨터에 명령을 해야하는데, 해당 명령을 파이썬에서는 print() 로 한다. (ex) print('문자/문자열') print(3) 연산 - 연산 몫연산/ 나머지 연산 / 나누기 연산 (ex) print(15//4) 처럼 슬래쉬를 2개 쓰면 몫연산이다. 예시의 출력은 3이 나오겠다 (ex) print(15%4)처럼 %는 modular 연산 (나머지 연산)이라고 하는데, 나머지를 출력한다. 예시의 출력은 3이 나오겠다. (ex) print(15/4) 처럼 /는 나누기 연산이다. 출력 결과는 소수점이 나온다. 변수,데이터 타입 - 변수는 데이터를 할당하는 것으로, 데이터 타입으로..

구현

구현(Implementation)이란 ? : 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정으로, 어떤 문제를 풀든 간에 소스코드를 작성하는 과정은 필수이므로 구현 문제 유형은 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념이다. 우리는 알고리즘 문제를 해결할 때, 문제를 읽고 문제 풀이 방법을 고민한다. 이 때, '구현' 유형이란 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 의미한다. 흔히들, 프로그래밍 언어의 문법에 능숙하고 코드 작성 속도가 빠른 것을 피지컬이 좋다라고 얘기하는데, 구현 문제에서는 이런 피지컬을 요구하기도 한다. 실제 코딩 테스트에서 구현 문제를 만나면 당황할 수 있다. 어떻게 풀지 감은 오는데, 쉽게 코드로 옮겨지지는 않기 때문이다. 프로그래밍 문법을 정확하게 ..

시간과 메모리 측정

코딩 테스트 문제를 풀 때, 시간과 메모리를 측정하는 방법을 알아보자! 파이썬에서는 프로그램 수행 시간과 메모리 사용량을 측정할 수 있다. 문제를 풀면서, 자신이 제대로 알고리즘을 작성하고 있는지 알아야 하기 때문이다. 몇몇 기업은 코딩 테스트를 볼 때, 제출 횟수를 제한 하기 때문에 시간과 메모리를 중간에 체크하는 법을 알면 문제를 옳은 알고리즘으로 풀었는지 미리 알 수 있을 것이다. 아래는 특정한 프로그램의 수행 시간을 측정하는 소스코이다. import time start_time = time.time() # 측정 시작 # 프로그램 소스코드 ~~~~ end_time = time.time() # 측정 종료 print("time : ", end_time - start_time) # 수행시간 출력 예를 들..

반응형