본문 바로가기

전체 글

(38)
[백준 1759] 암호만들기 - python 문제링크 : https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 문제설명 주어진 알파벳 배열을 통해 L 길이의 암호를 오름차순으로 만들어라. 조건 1. 암호는 반드시 오름차순이어야 한다. 조건 2. 암호는 세글자 이상이며, 1개 이상의 모음과 2개 이상의 자음을 포함한다. 직관적인 접근 - 완전탐색 L 길이를 가지는 모든 경우의 수를 구하고, 경우의 수가 조건 1,2를 만족하는지 확인한다. 문제점 - 시간초과 모든 경우의 수를 탐색하여 비효율적 문제해결..
[백준 14888] 연산자 끼워넣기 - c++ 문제링크: https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. www.acmicpc.net 문제설명 수열에 주어진 연산자를 넣어서 만들 수 있는 가장 큰 수와 가장 작은 수를 출력하는 문제 문제해결 - 깊이우선탐색 수열 a에 연산자를 대입하여 나오는 모든 경우의 수를 구해 해결한다. 깊이가 최대로 내려갔을 경우 기존에 구했던 최소, 최댓값과 비교하여 최소, 최댓값을 갱신한다. ..
[백준 - 2580] 스도쿠 - c++ 문제링크: https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 몇 몇 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3 www.acmicpc.net 문제설명 스도쿠 규칙에 맞게 빈칸 채우기 직관적인 접근 - 완전탐색 빈칸에 들어갈 수 있는 모든 경우의 수 탐색 문제점 - 시간..
[백준 - 9663] N-Queen - c++ 문제링크 : https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제설명 N X N 크기의 체스판 위에 N개의 퀸을 서로 공격할 수 없게 놓는 경우의 수 구하기 직관적인 접근 - 완전탐색 체스판 위에 N개의 퀸을 놓을 수 있는 모든 경우의 수를 구하고 서로 공격할 수 없는 경우만 출력 문제점 - 시간초과 완전탐색으로 문제를 접근하면 O(N!) 의 시간복잡도가 소요된다. 따라서 N이 증가할때마다 기하급수적으로 성능이 떨어진다. 문제해결 - 백트래킹 퀸은 한 행에 하..
[SWEA-5188] 최소합 - python https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 MAX = 999999 T = int(input()) for tc in range(1, T+1): N = int(input()) #지도를 N보다 사이즈가 1씩 큰 2차원 리스트로 생성한다. maze = [[MAX for i in range (N+1)] for..
[백준 5397] 키로거 - Python 문제링크https://www.acmicpc.net/problem/53975397번: 키로거문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 테www.acmicpc.net소스코드1234567891011121314151617181920212223242526272829303132333435363738394041..