본문 바로가기

전체 글

(107)
백준 - 1182(부분 수열의 합, 파이썬) https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 문제 접근 문제를 보자마자 아 이거 재귀함수로 다 해보면 되겠는데? 라는 생각이 들었다. 재귀함수의 리턴하는 성질을 이용하면 모든 경우의 수를 구할 수 있다는건 코테 문제 쫌 풀어본 사람이면 알 것이다. 근데 뭐지..정답이 12퍼센트에서 틀렸습니다가 나왔다. 일단 정답 코드 n, s = map(int, input().split()) numbers = list(m..
백준 - 1021(회전하는 큐, 파이썬) https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 문제 접근 큐를 최소한으로 회전시키며 값을 추출하는 문제 다행히 파이썬에는 큐를 회전시키는 rotate 함수가 있어서 편하게 구현 어떤 기준에 따라 오른쪽, 왼쪽으로 회전시킬지만 정해주면 될듯 처음에는 구하려는 값이 오른쪽 끝과 가까운지 왼쪽 끝과 가까운지를 판단해 큐를 회전시키려 했다. from collections import deque n, m = map(int, input().split..
백준 - 5568(카드 놓기, python) https://www.acmicpc.net/problem/5568 5568번: 카드 놓기 예제 1의 경우 상근이는 11, 12, 21, 112, 121, 122, 212를 만들 수 있다. www.acmicpc.net 문제 풀이 n개의 카드 중에서 k개를 선택하여 그 수를 나열해 만들 수 있는 수의 개수를 구하는 문제 재귀를 이용해 만들 수 있는 수를 만들고 set에 저장해 중복을 제거해주면 되겠다 판단함 다만 재귀를 구현하던 중 코드가 꼬여서 다른사람의 풀이를 보았음..구현력 이슈 정답 코드(1) # n개 중에서 k개를 선택하여 만들 수 있는 정수의 개수 n = int(input()) k = int(input()) numbers = [] for _ in range(n): numbers.append(inp..
백준 - 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..