전체 글

알고리즘(백준)

[알고리즘/문자열] 11655번 : ROT13 - python

링크 : https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 소요시간: 10분 20초 설계하기(접근방법) 1. 입력받기 문자열을 입력받는다 2. 구현하기 문자가 대문자인 경우 문자가 소문자인 경우 아닌 경우로 나눈다 대문자인 경우에는 대문자 리스트에서 위치를 찾은 후 해당 위치 += 13을 해준다 만약 25(z의 위치를 넘어가는 경우) 26으로 나눈 몫을 적용한다 소문자도 같은 플로우고 나머지 케이스는 그냥 출력하면 된다 3. 출력하기 코드(출력) from string import ascii_lowercase, ..

알고리즘(백준)

[알고리즘/문자열] 1159번 : 농구 경기 - python

링크 : https://www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작 www.acmicpc.net 문제 소요시간 : 10분 30초 설계하기(접근방법) 1. 입력받기 이름 리스트를 입력받는다 2. 구현하기 딕셔너리를 선언해서 각 name이 들어올 때마다 첫번째 글자에 해당하는 딕셔너리의 값을 + 1 해준다 그 후 딕셔너리를 순회하면서 5가 넘는 값을 검사해준다 3. 출력하기 5가 넘는 값을 출력해주고, 한 개도 없었다면 PREDAJA를 출력한다 코드(출력) from string import a..

알고리즘(백준)

[알고리즘/수학] 3474번 : 교수가 된 현우 - python

링크 : https://www.acmicpc.net/problem/3474 3474번: 교수가 된 현우 첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1

알고리즘(백준)/브루트 포스

[알고리즘/브루트 포스] 1182번 : 부분 수열의 합 - python

링크 : https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 문제 소요시간: 13분 30초 설계하기(접근방법) 1. 입력받기 조건을 입력받는다 2. 구현하기 입력받는 수열에 대해서 원소가 1개일 때 부터 n개 일 때 까지 조합을 만들어 리스트에 넣는다 그 후 그 리스트의 합이 s와 같은지 검사하고 같다면 cnt에 1을 더해준다 3. 출력하기 cnt 를 출력한다 코드(출력) from itertools import ..

알고리즘(백준)/브루트 포스

[알고리즘/브루트 포스] 2503번 : 숫자 야구 - python

링크 : https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 문제 소요시간:30분(실패) 설계하기(접근방법) 1. 입력받기 테스트 케이스와 숫자, strike, ball을 입력받는다 2. 구현하기 처음에는 케이스별로 나누어 해당하는 숫자들의 교집합을 구하려고 했으나 구현의 어려움을 느꼈다 따라서 다른 블로그의 풀이를 참조했다 실제로 100~ 987까지의 케이스를 모두 순회하면서 테스트 케이스로 주어진 숫자의 strike, ball과 매치하지 않는 ..

알고리즘(백준)/브루트 포스

[알고리즘/브루트 포스] 1018번 - python

링크 : https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 소요시간: 30분 실패(참고) 설계하기(접근방법) 1. 입력받기 체스판을 입력받는다 2. 구현하기 체스판 문자열을 8*8 형태로 첫 글자가 B 첫 글자가 W 인 경우로 나누어 완전탐색으로 구현한다 3. 출력하기 최소값을 출력한다 코드(출력) import sys input = sys.stdin.readline n, m = map(int, input().split()) chess..

알고리즘(백준)/브루트 포스

[알고리즘/브루트 포스] 1436번 : 영화감독 숌 - python

링크 : https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 문제 소요시간: 6분 10초 설계하기(접근방법) 1. 입력받기 n 을 입력받는다 2. 구현하기 숫자를 증가시키면서 안에 666이란 숫자가 있는지 검사하는 것이다 python 의 in을 검사하면 쉽게 구현 가능하다 3. 출력하기 종말의 수를 출력한다 코드(출력) n = int(input()) num = 0 i = 5 while num < n: i += 1 if '666' in str(i)..

알고리즘(백준)/그리디

[알고리즘/그리디] 2812번 : 크게 만들기 - python

링크 : https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 소요시간: 40분 실패 설계하기(접근방법) 1. 입력받기 조건대로 입력받는다 2. 구현하기 처음에는 구현을 해버렸다 지금 숫자와 다음 숫자를 비교해서 다음 숫자가 크면 다음 숫자로 바꿔주고 지금 숫자가 크다면 앞에서 부터 1자리씩 줄여가면서 크기를 비교하고 다음 숫자가 큰 경우가 생기면 그 부분만 떼서 교체해준다 예를 들어 10 4 4177252841 일때 1 : 417725 2 : 417725 > 177252 3 : 417725 < 772528 4 : 772..

되다
코드테일