728x90

알고리즘 46

27 삐약 : 백준 10808[바킹독 문제 풀이 | 배열 | JAVA]

https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net package Array; import java.util.*; public class BOJ_10808 { public static void main(String args[]){ Scanner sc = new Scanner(System.in); String s = sc.next(); int[] count = new int[26]; for(char c: s.toCharArray()){ int index = c -97; count[index] +=1; } for(int i:count){ Syst..

26 삐약 : 백준 1018[브루트 포스 | C++]

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net #include #include #include #include using namespace std; // 비교하고자 하는 문자열을 아예 저장을 한 후에 진행하였. 땨. string WB[8] = { "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW" }; string BW..

[Factors] gcd, lcm Theorem | C++ / Cpp

중고등학생때 해보고 냅다 까먹어 버린 최대공약수와 최소공배수를 다시 리마인드 하러 왔.땨. # gcd(a,b) : greatest commom divisor 두 integer a,b에 대하여 a,b의 공통된 factor들 중 최대값을 뜻한다. ex) gcd(30,12) =6 #lcm(a,b) : lowest common multiple 두 integer a,b를 모두 factor로 가지는 수들 중 가장 작은 수 ex) lcm(30,12) = 60 # 관계 성립 # Theorem non-zero integer a,b에 대해 아래 statement들이 성립한다. gcd(a,b)=gcd(b,a) if a>0, and a|b, -> gcd(a,b)=a if a≡c(mob b) -> gcd(a,b)=gcd(c,b..

[Prime] 에라토스 테네스의 체 | C++ / Cpp

이전 포스팅 https://dusty-wznt.tistory.com/85 에서 Prime에 대해 다뤘고 그와 동시에 에라토스 테네스의 채의 원리를 너무나도 완 벽 하 게 이해를 해버렸.땨. # 에라토스 테네스의 체 주어진 integer x가 prime인지에 대한 여부를 쉽게 판별할 수 있도록 processing 해주는 알고리즘. prime 여부는 크기가 n인 array에 저장되며 (이해를 돕기 위해 sieve라고 하겠다. sieve == 체) i>2에 대하여 sieve[i] ==0이면 i는 prime이고 sieve[i]==1이면 i는 !prime이다. 이처럼 배열은 해당 index가 prime인지에 대한 여부를 저장한다. 여기서 에라토스 테네스의 채를 구현할 때 key idea가 될 조건은 앞서 포스팅 ..

[소수 & 약수] Prime | C++ / Cpp

거 참 제목 하나 영어로 썼다고 간지나는 거 보소. 이전에 에라토스 테네스의 체를 포스팅 한 적이 있다. https://dusty-wznt.tistory.com/19?category=1061713 이때는 그냥 코드 구현만 하고 자세한 설명이 없었는데 수업을 듣다가 원리를 깨달아 버렸다. 만약 N이 prime이 아니라면 두 positive integer a,b >1에 대하여 n=a*b로 나타낼 수 있다. 이 경우 a or b는 반드시 √n 을 넘지 않는다. bool prime(int n){ if(n

[Problem Solving Paradigms] Greedy

Greedy 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법 순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다. # 동작하기 위한 조건 Logical oprimum의 존재 greedy한 방법으로 global optimal solution에 도달 가능하다는 것을 증명 가능해야 함 탐욕적 선택 속성(Greedy Choice Property) : 앞의 선택이 이후의 선택에 영향을 주지 않는다. 최적 부분 구조(Optimal Substructure) : 문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법으로 구성된다. # 문제 해결 방법 선택 ..

728x90