반응형

전체 글 172

[파이썬 문법] 문자열 보충(슬라이싱, 문자열 함수)

문자열 연산(더하기, 곱하기) '+'를 통해 문자열끼리 연결할 수 있으며 '문자열 * 정수'를 통해 해당 문자열을 반복할 수 있다. 이는 [파이썬 문법] 그 외 다양한 자료형(문자열, 튜플, 사전, 집합)에서 다루었다. 문자열 슬라이싱 문자열도 리스트와 같이 인덱싱과 슬라이싱을 할 수 있다. a[start:end:step] start: 슬라이싱을 시작할 인덱스 end: 슬라이싱을 끝낼 인덱스(end 포함 x) step: 몇 개씩 끊어서 가져올지와 슬라이싱 방향을 결정 start, end, step 모두 양수와 음수를 가질 수 있다. ※ start 속성 활용 a = ['a', 'b', 'c', 'd', 'e'] print(a[1:]) # 1번 인덱스부터 끝까지 print(a[-3:]) # -3번 인덱스부터..

[파이썬 문법] 입출력 보충(2차원 배열, sys.stdin.readline)

input() 대신에 sys.stdin.readline()을 사용하는 이유? [파이썬 문법] - [파이썬 문법] 입출력 에서 언급한대로 입력해야할 데이터가 매우 많은 경우 입력을 받는 것만으로도 시간 초과를 받을 수 있다. 예를 들어 반복문으로 여러줄을 입력 받아야하는 문제의 경우 input()을 사용하면 시간 초과를 받을 수 있다. ※ 한 줄의 문자열 입력받기 import sys data = sys.stdin.readline().rstrip() print(data) rstrip()는 문자열의 맨 오른쪽의 개행문자(공백)를 삭제해주는 함수이다. ※ 여러 줄의 문자열 리스트에 입력받기 import sys n = int(sys.stdin.readline()) # 입력받을 문자열 수 data = [sys.st..

[이취코테] 왕실의 나이트

https://youtu.be/2zjoKjt97vQ 이 문제의 해설 영상이다. 문제 체스판과 같은 8 x 8 좌표 평면에서 나이트는 특정한 위치에서 다음과 같은 2가지 경우로 이동할 수 있다. 1. 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 2. 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 8 x 8 좌표 평면 상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하시오. (단, 좌표평면 밖으로는 나갈 수 없다.) 이때 행 위치는 1부터 8로 표현하며, 열 위치는 a부터 h로 표현한다. 입력 조건: 첫째 줄에 8 x 8 좌표 평면 상에서 현재 나이트가 위치한 곳의 좌표를 나타내는 두 문자로 된 문자열이 입력된다. 입력 문자는 a1처럼 열과 행..

[BOJ] 1439 - 뒤집기

https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net import sys data = sys.stdin.readline().rstrip() count0 = 0 count1 = 0 if data[0] == '1': count0 += 1 else: count1 += 1 for i in range(len(data) - 1): if data[i] != data[i+1]: if data[i+1] == '1': count0 += 1 else: count1 +=..

알고리즘/BOJ 2022.01.04

[이취코테] 숫자 카드 게임

문제 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 1. 숫자가 쓰인 카드들이 N x M 형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 2. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 3. 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야한다. 카드들이 N x M 형태로 놓여 있을 때, 게임의 룰에 맞게 카드를 뽑는 프로그램을 만드시오. 입력 조건: 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 각각 자연수로 주어진다. (1

[이취코테] 큰 수의 법칙

문제 동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번 초과하여 더해질 수 없다. (서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다.) 배열의 크기 N, 숫자가 더해지는 횟수 M, 그리고 K가 주어질 때 동빈이의 큰 수의 법칙에 따른 결과를 출력하시오. 입력 조건: 첫째 줄에 N(2

[이취코테] 모험가 길드

https://youtu.be/2zjoKjt97vQ 이 문제의 해설 영상이다. 문제 한 마을에 모험가가 N명 있다. 모험가 길드에서는 N명의 모험가를 대상으로 '공포도'를 측정했는데, '공포도'가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서 제대로 대처할 능력이 떨어진다. 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여할 수 있도록 규정했다. 동빈이에게 N명의 모험가에 대한 정보가 주어졌을 때, 만들 수 있는 그룹 수의 최댓값을 구하는 프로그램을 작성하시오. (단, 모든 모험가를 특정한 그룹에 넣을 필요는 없다.) 입력 조건: 첫째 줄에 모험가의 수 N이 주어진다. (1

반응형