본문 바로가기

전체 글

(112)
백준 - 15736(청기 백기, 파이썬) https://www.acmicpc.net/problem/15736 15736번: 청기 백기 예제 입력 1의 경우 1, 2, 3번 깃발이 존재하고, 3명의 선수가 참가한다. 첫 번째 선수는 1의 배수의 번호를 가진 깃발을 뒤집는다. 초기에 청색이였던 깃발은 첫 번째 선수에 의해 모두 백기로 된 www.acmicpc.net 문제 접근 문제 자체는 매우 간단하지만 입력 값이 높아 규칙을 발견해서 시간 초과를 해결하는 문제 초과나는 코드 # 초기의 깃발은 모두 청색? # 1. 일단 완전탐색으로 구현해보기 -> 시간초과 날것임 n = int(input()) # 0은 청, 백은 1 flag = [0] * (n+1) flag [0] = 10 for i in range(1, n+1): for j in range(i,..
백준 - 3085(사탕 게임, 파이썬) https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 문제 접근 완전탐색으로 하나씩 교환해주며 개수를 센다. 상하좌우 다 교환할 필요없이 오른쪽과 아래쪽만 교환하면 된다. # 로직은 맞는데 구현을 실패함 # 다른사람이 구현한 것 참조 import sys input = sys.stdin.readline n = int(input()) board = [list(input()) for _ in range(n)] maxCnt = 0 # 행렬을 검사하여 최대값을 갱신하는 함수 def check(): global maxCnt for i in range(n): # 행을 검사 cnt..
백준 1012 - 유기농 배추(파이썬) https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 접근 이차원 배열에서 배추의 위치가 1로 주어질 때 인접한 배추가 몇 쌍인지를 구하면 되는 문제 모든 좌표를 확인해서 1일 때 인접한 1들을 전부 0으로 바꾸고 카운트를 증가시키는 방법으로 접근 인접한 1들의 상하좌우를 모두 탐색하기 위해 bfs 활용 정답 코드 from collections import deque dx = [0,0,1,-1] dy = [1, -1, 0,0] t = int(input())..
SWEA - 1983(조교의 성적 매기기, python) https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PwGK6AcIDFAUq&categoryId=AV5PwGK6AcIDFAUq&categoryType=CODE&problemTitle=&orderBy=SUBMIT_COUNT&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 학생들의 중간고사, 기말고사, 과제점수가 주어졌을 때 k번째 학생의 학점을 구하는 문제 시뮬레이션 문제로 접근하여 아..
SWEA - 2001. 파리 퇴치(python) https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PzOCKAigDFAUq&categoryId=AV5PzOCKAigDFAUq&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 접근 이차원 배열을 다룰 수 있는지를 물어보는 문제 입력 값이 적어 간단하게 반복문을 겹쳐서 작성하였다. 작성한 코드 t..
백준 - 13458(시험 감독, python) https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 문제 접근 교실별 필요한 감독관수를 구해서 더해주었음 작성한 코드 n = int(input()) #시험장별 학생 수 num = list(map(int, input().split())) B, C = map(int, input().split()) #총 감독관 수와 부 감독관 수 viewer = 0 for i in range(n): #시험장별 감..
백준 - 14888(연산자 끼워넣기, python) https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 문제 접근 주어진 사측연산 기호의 개수에 맞춰 주어진 수들로 만들 수 있는 최대값, 최소값을 구하는 문제 dfs로 수를 하나씩 만들어서 가장 큰 값, 가장 작은 값을 출력 정답 코드 import sys input = sys.stdin.readline N = int(input()) num = list(map(int, input().split..
백준-14501(퇴사, python) https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 접근 주어진 기간동안 상담을 진행할때 벌어들일 수 있는 최대 수익을 구하는 문제 주어진 범위 값이 크지 않아 재귀함수를 통해 모든 경우의 수를 전부 구함 경우의 수를 구할 때 고려할점은 해당 날짜에 상담을 할 것인지 말 것인지를 결정하는 것 정답 코드 n = int(input()) ans = 0 consulting = [] def go(n, index, temp): if index == n: global ans if ans n: return # 상담을 하는 경우 ..