ACM준비 96

제곱ㄴㄴ수

https://www.acmicpc.net/problem/1016 1016번: 제곱 ㄴㄴ 수 어떤 정수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 그 수를 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min보다 크거나 같고, max보다 작거나 같은 제곱ㄴㄴ수 www.acmicpc.net 제곱수의 개수를 찾아내어 전체 수에서 빼주면 된다. 단, 제곱수의 개수를 찾는것은 전체 범위의 min, max의 제곱근의 범위로 찾을 수 있다. 문제는 왜 틀렸는지 모르겠다ㅜ #define INT64 long long int main() { INT64 min, max; scanf("%llu %llu", &min, &max); INT64 A = (sqrtl(max) >= (INT64..

ACM준비/acmicpc 2015.11.04

수열 정렬

https://www.acmicpc.net/problem/1015 1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net 특정 수열을 오름차순으로 만드는 또 다른 수열을 구하는 문제이다. 가장 쉽게 생각할 수 있는 방법은 현재 수열에서 가장 작은 숫자를 순차적으로 뽑아내어 해당 인덱스를 배열로 만들면 풀 수 있다. 단, 쉬운만큼 시간은 O(n^2)가 걸리므로 조금 더 어려운 조건일 경우 시간을 줄이는 방법을 새로 생각해야한다. #define MAXIMUM 1001..

ACM준비/acmicpc 2015.11.03

Contact

https://www.acmicpc.net/problem/1013 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ www.acmicpc.net 문제 자체가 오토마타를 타겟으로 만든 문제같다. 여러 생각을 해봤지만 진짜 오토마타처럼 순서도를 작성해서 풀어봤다. 중간에 특정 조건이 존재하므로 잘 예외처리를 해야한다. 1. 10011001 (O) 2. 1001001 (X) 3. 100101 (O) typedef struct{ int next_state[2]; }state; state OM[7]; void makeSTATE(int i..

ACM준비/acmicpc 2015.11.03

유기농 배추

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 특정 배추를 선택할 때 인접 배추들도 검색을 해야한다. 쉽게 생각하면 지뢰찾기에서 연쇄처리와 같다고 볼 수 있다. Queue에 현재 위치를 넣고 계속해서 주변에 만족하는 배추들의 위치를 추가한다. 이런식으로 모든 배추를 검색하면 DFS가 된다. 또 다른 예로는 퍼즐버블게임이나 뿌요뿌요같은 퍼즐게임에서 연쇄처리를 할 때 사용할 수 있겠다. using namespace std; bool MAP[50][50]; t..

ACM준비/acmicpc 2015.11.02

포켓몬 마스터

https://www.acmicpc.net/problem/9987 9987번: 포켓몬 마스터 입력으로 포켓몬의 번호가 주어졌을 때, 그 포켓몬의 이름과 타입을 출력하는 프로그램을 작성하시오. www.acmicpc.net acmicpc 문제상 다른의미로 가장 힘들었다. 특정 사이트의 text를 긁어다 파싱하고 푸는 문제인데 중간중간 유니코드와 데이터를 잘 못 긁어올 경우 틀리기 쉽다. using namespace std; string poke[720]; int main() { poke[1] = "Bulbasaur\nGrass Poison"; poke[2] = "Ivysaur\nGrass Poison"; poke[3] = "Venusaur\nGrass Poison"; poke[4] = "Charmander\..

ACM준비/acmicpc 2015.11.02