목록조합 (7)
It's easy, if you try
문제 https://programmers.co.kr/learn/courses/30/lessons/72411?language=java 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이 import java.util.*; class Solution { static HashMap hm; public String[] solution(String[] orders, int[] course) { hm = new HashMap(); for(String o: orders) { char[] order = o.toCharArr..
10개월 전의 내가 35번 틀리고 포기했던 문제 풀었다 ☻ 문제 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 풀이 import java.util.*; import java.io.*; public class Main_BOJ_14502_연구소 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int[][] map, mapClone; static int N, M, ma..

문제 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 풀이 1 메모리와 시간이 좀 더 나은 버전 import java.util.*; import java.io.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; static int N, M, D; static int[][] castle; static int[][] castleClone; sta..
정의 Combinations (조합 nCr) : 하나의 리스트에서 모든 조합을 계산해야할 때 사용한다. Permutations (순열 nPr) 과의 차이 순열은 순서가 바뀐 경우도 포함하고, 조합은 순서가 바뀐 경우는 포함하지 않는다(순서 상관 없음). 예를 들어 1,2,3 으로 이루어진 리스트에서 순열은 (1,2),(1,3),(2,3),(2,1),(3,1),(3,2) 조합은 (1,2),(1,3),(2,3) 이다. 사용 방법 from itertools import combinations # itertools 중 combinations를 import items = ['1','2','3'] c = list(combinations(items,2)) # 2가지 조합으로 이루어질 수 있는 모든 경우의 수를 l..
순열 서로 다른 n개의 원소 중 r개를 순서 있게 골라낸 것을 순열(Permutation)이라고 한다. 아래 코드는 주사위를 3번 던졌을 때 나올 수 있는 경우의 수이다. (중복 X, 순서 O) // 순열 : nPr ==> n! private static void dice2(int cnt) { if(cnt == N) { totalCnt++; System.out.println(Arrays.toString(numbers)); return; } for(int i =1; i n^r private static void dice1(int cnt) { if(cnt == N) { // 기저 조건 totalCnt++; System.out.println(Arrays.toString(numbers)); return; } f..

문제 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static int[] capNum; static boolean[] isSelected; stati..

문제 코딩테스트 연습 - 위장 programmers.co.kr 풀이 이 문제는 알고리즘 스터디에서 설원언니가 풀이해준 문제인데, 복습하면 좋을 것 같아 다시 풀어보며 공부한 후, 정리했다. from collections import Counter from functools import reduce def solution(clothes): count = Counter([category for name, category in clothes]) return reduce(lambda x, y : x * (y + 1), count.values(), 1) -1 먼저 서로 다른 의상의 조합의 수를 구하는 공식 clothes가 [[yellow_hat, headgear], [blue_sunglasses, eyewear]..