본문 바로가기

두두의 알고리즘/문제

(124)
[이분탐색] 프로그래머스 L4 '가사 검색' (Python) https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 물음표(?)를 와일드카드로 표현하고 길이가 같아야 한다고 해서 처음엔 정규표현식을 사용해서 풀었다. 한 달 뒤에는 조건문을 활용하여 문제를 풀었다. #211017 -> 효율성 테스트 1,2,3,4 실패 #정규표현식 활용 import re def solution(words, queries): answer = [0] * len(queries) words = sorted(words) p = [0] * len(queries) for i in range(len(queries)): queries[i] = queries[i].replace("?",".")..
[구현] 난이도1, Facebook 인터뷰 '문자열 재정렬' (Python) 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다. 예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다. 첫째 줄에 하나의 문자열 S가 주어집니다. (1
[구현] 난이도1, 백준 18406번 '럭키 스트레이트' (Python) https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 입력값을 반으로 나누어 왼쪽 값과 오른쪽 값이 같은지 비교한다. ''' 123402 7755 ''' n = input() half = int(len(n)/2) ls=0;rs=0 for idx, i in enumerate(n): if idx
[구현] 난이도1, 이취코 115p '왕실의 나이트' (Python) 행복 왕국의 왕실 정원은 체스판과 같은 8 × 8 좌표 평면이다. 왕실 정원의 특정한 한 칸에 나이트가 서 있다. 나이트는 매우 충성스러운 신하로서 매일 무술을 연마한다. 나이트는 말을 타고 있기 때문에 이동을 할 때는 L자 형태로만 이동할 수 있으며 정원 밖으로는 나갈 수 없다. 나이트는 특정 위치에서 다음과 같은 2가지 경우로 이동할 수 있다. 1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 이처럼 8 × 8 좌표 평면상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하라. 왕실의 정원에서 행 위치를 표현할 때는 1부터 8로 표현하며, 열 위치를 표현할 때는 a부터 h로 표현한다. 예를..
[구현] 난이도1, 이취코 113p '시각' (Python) 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59추까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다. - 00시 00분 03초 - 00시 13분 30초 반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다. - 00시 02분 55초 - 01시 27분 45초 첫째 줄에 정수 N이 입력된다. (0
[구현] 난이도1, 이취코 110p '상하좌우' (Python) 여행가 A는 N x N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 x 1 크기의 정사각형으로 나누어져 있다. 가장 왼쪽 위 좌표는 (1, 1)이며, 가장 오른쪽 아래 좌표는 (N, N)에 해당한다. 여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며 시작 좌표는 항상 (1,1)이다. 우리 앞에는 여행가 A가 이동할 계획이 적힌 계획서가 놓여 있다. 계획서에는 하나의 줄에 띄어쓰기를 기준으로 하여 L, R, U, D 중 하나의 문자가 반복적으로 적혀 있다. 각 문자의 의미는 다음과 같다. - L: 왼쪽으로 한 칸 이동 - R: 오른쪽으로 한 칸 이동 - U: 위로 한 칸 이동 - D: 아래로 한 칸 이동 이때 여행가 A가 N X N 크기의 정사각형 공간을 벗어나는 움직임은 무시된다. 예를 ..
[탐욕법] 백준 1439번 '뒤집기' (Python) https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 0에서 1로, 1에서 0으로 바뀌는 지점을 파악하여 연속된 0과 1의 개수를 파악한다. s의 범위를 파악해야 하므로 바뀌는 지점을 담는 변수 change 첫 번째 값에 0을, 마지막 값에 s의 길이를 넣는다. 0과 1 중 연속된 값이 적은 것을 파악하여 개수를 출력한다. '''입력 예제 0001100 11111 00000001 1100110011001100001 11101101 ''' s = in..
[다익스트라] 난이도2, USACO '숨바꼭질' (Python) 동빈이는 숨바꼭질을 하면서 술래로부터 잡히지 않도록 숨을 곳을 찾고 있습니다. 동빈이는 1~N번까지의 헛간 중에서 하나를 골라 숨을 수 있으며, 술래는 항상 1번 헛간에서 출발합니다. 전체 맵에는 총 M개의 양방향 통로가 존재하며, 하나의 통로는 서로 다른 두 헛간을 연결합니다. 또한 전체 맵은 항상 어떤 헛간에서 다른 어떤 헛간으로 도달이 가능한 형태로 주어집니다. 동빈이는 1번 헛간으로부터 최단 거리가 가장 먼 헛간이 가장 안전하다고 판단하고 있습니다. 이때 최단 거리의 의미는 지나야 하는 길의 최소 개수를 의미합니다. 동빈이가 숨을 헛간의 번호를 출력하는 프로그램을 작성하세요. 첫째 줄에는 N과 M이 주어지며, 공백으로 구분합니다. (2

LIST