Loading...
2022. 4. 10. 02:46

파이썬 문자열 필수 스킬 - N-gram 순회하기, 대소문자를 무시한 변환

1. N-gram 순회하기 예를 들어 문자열 'abcdefabcxydzedase'가 있다고 해보자. 일반적으로 for문을 이용해 순회하면 1글자씩 순회하는데 이는 1-gram이라고 부른다 string = 'abcdefabcxydzedase' for char in string: print(char) a b c d e f a b c x y d z e d a s e 그런데 알고리즘 문제를 푸는 코딩테스트를 보다보면 2-gram 이상으로 순회하고 싶을 때가 있다. 예를 들어 'abcdefabcxydzedase'에서 ab, bc, cd, de, ef, fa, ab, bc, cx, xy,.... 방식으로 순회하거나 abc, bcd, cde, def, ...로 순회하거나 어떻게 가능할까? zip함수를 이용하면 2-g..

2022. 4. 9. 01:26

그래프를 여러 집단으로 나누는 방법

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A,B,C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. ..

2022. 4. 6. 01:31

파이썬 중복을 제거하는 set 잘 활용하기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신..

2022. 4. 1. 03:14

2가지 모드로 나누어서 생각하기(코딩테스트 복기)

1. 문제 각 층마다 w개의 방으로 구성되고 전체 층은 h개로 구성된 호텔이 있다 사람들은 오전 11시에 체크아웃을 하고 오후 2시에 체크인을 한다 각 예약마다 k개의 연속된 방을 사람들이 체크인 날짜와 체크아웃 날짜에 맞춰서 예약을 한다 이 때 방을 나눠주는 규칙은 반드시 k개의 연속된 방으로 최대한 낮은 층, 최대한 낮은 번호의 방을 줘야한다. 주어지는 예약 리스트에서 예약을 받으면 1, 예약을 거절하면 0으로 하는 리스트를 출력해라 2. 나의 풀이 w개의 방과 h개의 층으로 구성된 호텔을 리스트로 구성함 def solution(w,h,reserves): hotel = [[0 for range(w)] for range(h)] 예를 들어 5개의 방에 2층으로 구성된 호텔을 생각해보고 k / 체크인/ 체..

최소비용으로 목표한 금액을 생산하는 방법은?

1. 문제 화폐가 1원, 5원, 10원, 50원, 100원, 500원으로 6종류가 있다. 목표하는 생산 금액 money가 주어지고 주어진 화폐 6종류의 생산 단가가 배열로 costs로 주어진다. money만큼 화폐를 생산하는데 최소비용을 return하는 알고리즘을 작성한다면? 2. 내가 생각한 풀이 목표로 하는 금액 money를 target이라는 새로운 변수에 복사하고 money_list를 500부터 1원까지 거꾸로해서 리스트로 만든다 money_dict로 금액을 key로 해당 금액의 생산단가를 value로 하는 사전을 만든다 prod_list는 각 화폐를 몇개 생산해야하는지 나타낸 변수 def solution(money, costs): from collections import deque answer ..

2022. 1. 28. 20:06

2차원 배열 알고리즘 문제가 나오면 반드시 생각해야하는 스킬들

1. 직사각형에 자연수를 순서대로 집어넣기 rows * columns 직사각형에 1,2,3,...을 순서대로 집어넣을려면 matrix = [ [row * columns + (column+1) for column in range(columns)] for row in range(rows)] rows = 4 columns = 3 matrix = [[row*columns + (columns+1) for column in range(columns)] for row in range(rows)] print(matrix) [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 2. 직사각형 배열에서 열을 뽑는 방법 j+1열을 뽑고 싶으면 [row[j] for row in matrix] j = 2 [row[j..