[이진탐색] 프로그래머스_입국심사
·
코딩 테스트 일지 📒
n명이 입국심사를 위해 줄을 서있고, 입국심사관이 한 명을 심사하는 데 걸리는 시간이 담긴 배열 times가 있다. 기다리는 시간과 심사 시간까지 합해서 모든 사람이 심사를 받는 데 걸리는 시간의 최솟값을 return 해야 한다.입출력 예ntimesreturn6[7, 10]28입출력 예 설명가장 첫 두 사람은 바로 심사를 받으러 갑니다. 7분이 되었을 때, 첫 번째 심사대가 비고 3번째 사람이 심사를 받습니다. 10분이 되었을 때, 두 번째 심사대가 비고 4번째 사람이 심사를 받습니다.14분이 되었을 때, 첫 번째 심사대가 비고 5번째 사람이 심사를 받습니다.20분이 되었을 때, 두 번째 심사대가 비지만 6번째 사람이 그곳에서 심사를 받지 않고 1분을 더 기다린 후에 첫 번째 심사대에서 심사를 받으면 2..
[이진탐색] 정렬된 배열에서 특정 수의 개수 구하기
·
코딩 테스트 일지 📒
문제N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 단, 이 문제는 시간 복잡도 O (log N)으로 알고리즘을 설계하지 않으면 시간 초과 판정을 받습니다.입력 조건 : 첫째 줄에 N과 x가 정수형태로 공백으로 구분되어 있고, 둘째 줄에 N개의 원소가 정수 형태로 구분되어 입력된다.출력 조건 : 수열의 원소 중에서 값이 x인 원소의 개수를 출력하고, x인 원소가 하나도 없다면 -1을 출력한다.https://www.youtube.com/watch?v=94RC-DsGMLo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=522:35에 나오는 문제입니다.만약, 이 문제의 제한조건에 시간복잡도가 O(log ..
[이진탐색] 떡볶이 떡 만들기 + map, 리스트 컴프리헨션
·
코딩 테스트 일지 📒
map 함수map(함수, 데이터)함수: 각 요소에 적용할 함수입니다. 일반적으로는 lambda 함수나 int와 같은 일반적인 함수가 사용됩니다.데이터: 함수를 적용할 대상 데이터입니다. 이 데이터는 반복 가능한(iterable) 형태여야 합니다. 리스트, 튜플, 세트 등이 사용될 수 있습니다.리스트 컴프리헨션(list comprehension) 리스트 컴프리헨션(list comprehension)은 파이썬에서 리스트를 생성하는 간결하고 효율적인 방법입니다.[표현식 for 항목 in iterable if 조건]표현식: 반복하는 동안 각 항목에 대한 계산이나 조작을 정의하는 표현식입니다. 이 표현식을 통해 나온 값이 리스트의 각 요소로 들어가게 됩니다.항목: 반복 가능한(iterable) 객체에서 가져온..
[구현] 프로그래머스_가장 큰 수 + 자릿수를 기준으로 정렬, lambda, 슬라이싱
·
코딩 테스트 일지 📒
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 만들어내야 하는 문제입니다.예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.문제를 보고 먼저 든 생각은, 자릿수의 길이에 상관없이 해당 원소에서 자릿수가 큰 쪽부터 비교를 해야 한다고 생각했는데요!예를 들어, [6, 10, 200]에서는 10에서 자릿수가 큰 수는 십의 자리로 1입니다. 그리고 200에서 자릿수가 큰 수는 백의 자리로 2입니다. 그래서 6, 1, 2를 비교해서 가장 큰 6을 맨 앞에 위치시켜야 하겠죠?!각 자릿수의 수를 알아내는 방법바로 str 함수를 사용하면 됩니다.num = 342str..
[정렬] 두 배열의 원소 교체 + 입력받은 개수만큼 1차원 배열로, 리스트 원소값 서로 바꾸기, 리스트 원소의 합
·
코딩 테스트 일지 📒
입력받은 개수만큼 1차원 배열로 변환하기입력받을 땐, 공백을 기준으로 입력받거나 엔터를 기준으로 입력받을 수 있는데요!엔터를 기준으로 입력받을 땐, 원하는 개수만큼 반복문을 돌리면 되지만,공백을 기준으로 입력받을 때 쓰이는 split() 함수는 사용자가 입력한 정수의 개수와 상관없이 입력받기 때문에 입력 크기를 제한할 수 없습니다!엔터를 기준으로 원하는 개수만큼 입력받아 1차원 배열로 변환하는 방법n = int(input())numbers = [int(input()) for _ in range(n)]공백을 기준으로 입력받아 1차원 배열로 변환하는 방법numbers = list(map(int, input().split()))리스트 원소값 서로 바꾸기a = [1, 2, 3, 4]i, j = 1, 2 # 바..
[DFS & BFS] 프로그래머스_게임 맵 최단거리 & 나동빈_미로탈출
·
코딩 테스트 일지 📒
들어가기 전에 알아야 할 것!2차원 배열 크기 확인 방법행 크기maps = [[1,0,1,1,1],[1,0,1,0,1]]print(len(maps))출력값 : 2 (드래그)열 크기maps = [[1,0,1,1,1],[1,0,1,0,1]]print(len(maps[0]))출력값 : 5 (드래그)return문에서 if-else문 이용하기원래 방식if answer == 1: return -1else: return answer한줄로 간결히 코딩하기return -1 if answer == 1 else answer게임맵 최단거리https://school.programmers.co.kr/learn/courses/30/lessons/1844?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반..
[DFS & BFS] 음료수 얼려먹기 + 2차원 리스트 생성 및 입력 방법
·
코딩 테스트 일지 📒
2차원 리스트 생성 및 입력 방법0. 0으로 채워진 2차원 리스트 생성하기my_list = [[0 for _ in range(n)] for _ in range(0)] #0으로 이루어진 2차원 리스트 생성 * for 문에서 _는 변수 지정 없이 반복할 때 사용한다.  1. 0으로 채워진 1차원 리스트의 각 원소에 리스트 추가하기n, m = map(int, input().split()) #n은 행, m은 열my_list = [0 for _ in range(n)] #0으로 채워진 1차원 리스트 my_list를 생성함for i in range(n) my_list[i] = list(map(int, input().split())) #1차원 리스트의 각 원소에 배열을 입력받음 2. 빈 1차원 리스트의 각 원소에 리..
[구현] 프로그래머스_키패드 누르기
·
코딩 테스트 일지 📒
https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제는 위 링크에서 봐주세요! 1, 4, 7은 왼손이, 3, 6, 9는 오른손이 누르지만, 2, 5, 8, 0은 더 가까운 손이 누르기 때문에 경로를 계산하는 것이 중요합니다. 점과 점 사이의 직선 경로가 아니고 상하좌우 1칸 이동의 제한이 있는 상태에서 경로를 계산해야 해서 그 규칙을 파악하는데만 1시간 30분 정도가 걸렸습니다..ㅎ 그래도 규칙을 이해하고 나니 굉장히 재미있었습니당ㅎ 다음은 경로 ..
[그리디] 모험가 길드 + input(), sort(), sorted()
·
코딩 테스트 일지 📒
input() 함수 사용자가 입력한 내용은 문자열 형태로 반환한다.name = input("이름을 입력하세요: ")print("안녕하세요,", name)숫자 타입으로 바꾸고 싶다면, int() 함수나 float() 함수를 사용하여 문자열을 정수나 부동 소수점 숫자로 변환할 수 있다.num_input = int(input("정수를 입력하세요: "))print("입력된 정수:", num_input) 사용자의 입력을 받을 때, 개행 문자(Enter)를 입력으로 받아들인다. 따라서 사용자가 입력을 완료하려면 Enter 키를 눌러야 한다.띄어쓰기로 구분된 여러 개의 문자 입력을 받고 싶다면, split() 함수를 이용한다. 띄어쓰기로 구분된 여러개의 문자 입력을 리스트에 넣고 싶은 경우, list() 함수를 이용..
[그리디] 곱하기 혹은 더하기 + str(), int()
·
코딩 테스트 일지 📒
나동빈 채널을 보면서 코딩 테스트를 준비하고 있습니다! https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=3[그리디] 곱하기 혹은 더하기18:50초에 나오는 [곱하기 혹은 더하기] 문제를 풀어보도록 하겠습니다. 그전에 파이썬 기본부터 다져볼까요?! Q. 입력값이 "02345"일 때, 다음 코드로 출력되는 건 무엇일까요? n = int(input())list = []for i in str(n): list.append(int(i))print(list)       정답은...!        [ 0, 2, 3, 4, 5 ]가 아닌 [ 2, 3, 4, 5 ]입니다!str() 함수는 숫자를 문자열로 변환..
코양이🤍
'알고리즘' 태그의 글 목록 (3 Page)