분류 전체보기(514)
-
[알고리즘] 풀었던 문제 (240201)
1. 6808. 규영이와 인영이의 카드게임 순열 재귀함수 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 2961. 도영이가 만든 맛있는 음식 조합 재귀함수 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net 3. 2001. 파리퇴치 배열 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com
2024.02.03 -
[알고리즘] 15686. 치킨 배달
0. 문제 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 문제 이해 최악의 경우 : 가정집(2 * 50), 치킨집(13 Combination 7 = 13! /(6! * 7!) = 1716) → 171,600 연산 171,600 연산은 아주 여유롭다. (1억 번 연산을 1초라고 가정) 완전탐색으로 푼다. 2. 제출 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; imp..
2024.01.31 -
[알고리즘] 1244. 스위치 켜고 끄기
0. 문제 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1. 문제 이해 2. 제출 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static char[] switches; public static int swi, stu; public static void main(String..
2024.01.31 -
[알고리즘] 2615. 오목
0. 문제 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 1. 문제 이해 4가지 방향으로 같은 색의 돌을 센다. 단, 같은 방향이면 한 번만 센다. 돌이 5개 있으면 … 가장 왼쪽에 있는 돌을 출력. 세로로 돌이 위치하면 가장 위에 있는 돌 출력. 2. 제출 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class M..
2024.01.31 -
[Java] 순열과 조합
종류 설명 기호 시간복잡도 순열 N개의 원소 중 R개의 원소로 순서를 가진 부분집합을 만드는 경우의 수 nPr O(N!) 조합 N개의 원소 중 R개의 원소로 부분집합을 만드는 경우의 수 nCr O(n! / (r! x (n-r)!)) 부분집합 N개의 원소로 부분집합을 만드는 모든 경우의 수 nHr O(2^N) 1. 순열 가. 반복문 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Permutation { static int N, R=3; static int[] m..
2024.01.31 -
[알고리즘] 풀었던 문제 (241031)
15650. N과 M (2) 재귀함수를 사용해서 조합 구현. 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 15652. N과 M (4) 재귀함수를 사용해서 조합 구현. (비내림차순, 중복 가능) 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 6603. 로또 조합 6603번: 로또 입력은 여러 개의 테스트 케이스..
2024.01.31 -
[알고리즘] 풀었던 문제 (240131)
17478. 재귀함수가 뭔가요? 재귀함수 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 1208. Flatten 완전탐색 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1210. Ladder1 완전탐색 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2805. 농작물 수확하기 완전탐색 SW Expert Academy S..
2024.01.31 -
[알고리즘] 9658. 돌 게임 4
0. 문제 9658번: 돌 게임 4 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 1. 문제 이해 2개의 돌을 뺄 수 없다는 조건 때문에 수학적 규칙을 찾기 어려웠다. N=1000이고 제한시간은 1초다. 1초를 1억으로 가정하면 시간복잡도는 O(n^2)쯤이다. 모든 경우의 수를 다 구해서 풀면 O(n^3)이다. DP로 풀어야 한다. 상근이가 이기는지 지는지 알아내는 방법은 다음과 같다. 돌의 개수가 1 ~ 5까지는 비교적 쉽게 구할 수 있다. 돌의 개수가 6일 때는 6에서 1, 3, 4개를 빼본다. 6 - 1 = 5, 6 - 3 = 3 그리고 6 - 4 = 2에서 단 한 번이라도 상근이가 이기면 6에서도 상근이가 이긴다. (= 모든 경우에서 창영이가..
2024.01.23