Algorithm/Simulation 35

[Python] SWEA 1208번 Flatten

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 최대높이와 최저높이의 인덱스를 찾아 최대 높이의 값을 최저 높이에 옮긴다. 찾은 최대높이 값은 -1, 찾은 최저 높이 값은 +1 위 과정을 움직여야하는 횟수만큼 반복 한 후, 모든 덤프 작업이 끝났을 때의 최댓값과 최솟값을 찾아 그 값의 차이를 출력한다. 코드 # 최저높이 찾기 def find_min_height(): min_height = 101 min_idx = 0 for i in range(len(box)): if box[i] < min_height: min_height = box[i] min_idx = i return min_idx # 최대..

[Python] 백준 1543번 문서 검색

문제 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 입력 첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다. 출력 첫째 줄에 중복되지 않게 최대 몇 번 등장하는지 출력한다. 입력 예제 ababababa aba a a a a a a a 출력 예제 2 2 문제 풀이 비교되는 문자열과 비교하는 문자열이 같다면, 비교하는 문자열의 길이만큼 인덱스를 증가시켜 탐색하고, 같지 않다면 인덱스..

[Python] SWEA 10570번 제곱 팰린드롬 수

문제 숫자의 범위가 주어질 때 그 숫자와, 그 숫자의 제곱수가 모두 팰린드롬인 수의 개수 구하기 나의 풀이 숫자의 범위까지 하나씩 탐색하면서 그 숫자가 팰린드롬일 경우 그 숫자의 제곱수 또한 팰린드롬인지 체크한 후, 팰린드롬인 경우 카운트 코드 import math n = int(input()) for tc in range(n): a,b = map(int,input().split()) cnt = 0 for i in range(a, b + 1): # 두 자리수 넘을 때 앞 뒤 팰린드롬인지 확인 str_i = str(i) palindrome = True str_len = len(str_i) if str_len == 1: palindrome = True elif str_len >= 2: for j in ran..

[Python] 백준 2304번 창고 다각형

문제 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 입력 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 빈 칸을 사이에 두고 주어진다. L과 H는 둘 다 1 이상 1,000 이하이다. 출력 첫 줄에 창고 다각형의 면적을 나타내는 정수를 출력한다. 입력 예제 7 2 4 11 4 15 8 4 6 5 3 8 10 13 6 출력 예제 98..

[Python] 백준 2477번 참외밭

문제 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 입력 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지나는 변의 방향과 길이 (1 이상 500 이하의 정수) 가 둘째 줄부터 일곱 번째 줄까지 한 줄에 하나씩 순서대로 주어진다. 변의 방향에서 동쪽은 1, 서쪽은 2, 남쪽은 3, 북쪽은 4로 나타낸다. 출력 첫째 줄에 입력으로 주어진 밭에서 자라는 참외의 ..

[Python] 백준 14503번 로봇 청소기

문제 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 입력 첫째 줄에 방의 크기 N과 M이 입력된다. 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 (r, c)와 처음에 로봇 청소기가 바라보는 방향 d가 입력된다. d가 0인 경우 북쪽, 1인 경우 동쪽,2인 경우 남쪽, 3인 경우 서쪽을 바라보고 있는 것이다. 셋째 줄부터 N개의 줄에 각 장소의 상태를 나타내는 N x M개의 값이 한 줄에 M개씩 입력된다. i번째 줄의 j번째 값은 칸 (i,j)의 상태를 나타..

[Python] 프로그래머스 "문자열 압축"

문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문자열을 압축하는 최대 길이는 len(s) // 2 이므로 하나부터 len(s) // 2 의 길이만큼 차례대로 잘라 가면서 앞 뒤 문자열이 같은지 하나씩 확인한다. 앞 뒤 문자열이 같다면 반복되는 문자열 횟수와 문자열을 붙인다. 앞 뒤 문자열이 같지 않다면 숫자 없이 문자열을 붙인다. 남은 마지막 문자열에 대한 처리 또한 위와 같이 한 후, 문자열을 압축할 때 마다의 길이를 하나씩 확인하여 최소 길이를 출력 코드 s = 'abcabcdede' def solution(s): result_len ..

[Python] 백준 18406번 럭키 스트레이트

문제 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 입력 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. 출력 첫째 줄에 럭키 스트레이트를 사용할 수 있다면 "LUCKY"를, 사용할 수 없다면 "READY"라는 단어를 출력한다. 입력 예제 123402 7755 출력 예제 LUCKY READY 문제 풀이 문자열 쪼개서 앞 부분 값 다 더하기 뒷 부분 값 더하기 앞부분과 뒷부분의 값이 같다면 LUCKY 그렇지 않다면, READY 출력 코드 n = input() length = l..

[Python] 치킨배달

문제 크기가 N x N인 도시가 있습니다. 도시는 1 x 1 크기의 칸으로 나누어져 있습니다. 도시의 각 칸은 빈칸, 치킨집, 집 중 하나입니다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미합니다. r과 c는 1부터 시작합니다. 이 도시에 사는 사람들은 치킨을 매우 좋아합니다. 따라서 사람들은 "치킨 거리"라는 말을 주로 사용합니다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리입니다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있습니다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합입니다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2| 로 구합니..

[Python] 뱀

문제 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 입력 첫째 줄에 보드의 크기 N이 주어진다. (2 ≤ N ≤ 100) 다음 줄에 사과의 개수 K가 주어진다. (0 ≤ K ≤ 100) 다음 K개의 줄에는 사과의 위치가 주어지는데, 첫 번째 정수는 행, 두 번째 정수는 열 위치를 의미한다. 사과의 위치는 모두 다르며, 맨 위 맨 좌측 (1행 1열) 에는 사과가 없다. 다음 줄에는 뱀의 방향 변환 횟수 L 이 주어진다. (1 ≤ L ≤ 100) 다음 L개의 줄에는 뱀의 방향 변환 정보가 주어지는데, 정수 X와 문자 ..