Array
-
이 문제의 경우에는 상황 자체는 쉽게 이해할 수 있으나, 구현이 상당히 까다롭다. 그러한 까닭에 디버깅을 한참 시도하였다..(문제를 잘못읽은 영향이 사실 제일 크다.) 이 문제를 풀기위해서 가장 중요한 조건은 2가지의 작동이 순차적으로 진행된다는 것이다. 미세먼지의 확산을 시키고, 공기청정기에 의한 작용을 살펴주면 된다. 단, 미세먼지의 확산이 동시에 되기 때문에 temp array를 하나 만들어줘서 따로 처리해주어야 한다. 그렇지 않으면 배열이 바뀌면서 확산에 영향을 끼치게 되기 때문에 오류가 나올 수 밖에 없다. 또한, 공기청정기에 의한 확산은 일종에 먼지가 이동하는 작업을 거치게 되는데 이전의 배열에 있는 숫자가 이후로 옮겨지는 양상이므로 그것을 저장해주기 위해서 DP방식을 활용하여 진행해주면 된다..
[백준 17144번] [구현] [동적 계획법] 미세먼지 안녕!이 문제의 경우에는 상황 자체는 쉽게 이해할 수 있으나, 구현이 상당히 까다롭다. 그러한 까닭에 디버깅을 한참 시도하였다..(문제를 잘못읽은 영향이 사실 제일 크다.) 이 문제를 풀기위해서 가장 중요한 조건은 2가지의 작동이 순차적으로 진행된다는 것이다. 미세먼지의 확산을 시키고, 공기청정기에 의한 작용을 살펴주면 된다. 단, 미세먼지의 확산이 동시에 되기 때문에 temp array를 하나 만들어줘서 따로 처리해주어야 한다. 그렇지 않으면 배열이 바뀌면서 확산에 영향을 끼치게 되기 때문에 오류가 나올 수 밖에 없다. 또한, 공기청정기에 의한 확산은 일종에 먼지가 이동하는 작업을 거치게 되는데 이전의 배열에 있는 숫자가 이후로 옮겨지는 양상이므로 그것을 저장해주기 위해서 DP방식을 활용하여 진행해주면 된다..
2020.09.26 -
이 문제의 경우는 약간 독특하다. 일반적으로 오름차순으로 정렬하기 위해서는 가장 간단하게는 sort를 사용하면 되지만, 이 문제에서는 시간제한은 조금 널럴한 대신 메모리제한이 매우 제한적이다. 수가 10000으로 제한되어 있으므로 배열의 index와 숫자를 연결시켜서 저장시킨 뒤, 숫자가 들어오면 해당 배열의 값을 1 증가시키는 방식으로 메모리를 아낄 수 있음을 느끼고 문제를 접근했으면 된다. 위의 알고리즘으로 문제를 접근하면 다음과 같다. #include #include #include #include #include using namespace std; int main(void){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); in..
[백준 10989번] [배열과 수의 매칭] [빠른 입출력] 수 정렬하기 3이 문제의 경우는 약간 독특하다. 일반적으로 오름차순으로 정렬하기 위해서는 가장 간단하게는 sort를 사용하면 되지만, 이 문제에서는 시간제한은 조금 널럴한 대신 메모리제한이 매우 제한적이다. 수가 10000으로 제한되어 있으므로 배열의 index와 숫자를 연결시켜서 저장시킨 뒤, 숫자가 들어오면 해당 배열의 값을 1 증가시키는 방식으로 메모리를 아낄 수 있음을 느끼고 문제를 접근했으면 된다. 위의 알고리즘으로 문제를 접근하면 다음과 같다. #include #include #include #include #include using namespace std; int main(void){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); in..
2020.09.16 -
처음에 이 문제를 보고 세운 전략은 string 자료형으로 그룹 단어를 받고, 앞 index부터 바로 앞 단어와 글자가 같으면 pass하고, 다르면 앞 index에서 등장한 문자인지를 확인하여 그룹단어 여부를 확인한다. 다만, 이 상황에서 이미 등장한 문자열을 string자료형에 concat을 시키는 방식으로 코드를 구현하였다. 해당하는 방식으로 코드를 구현한 결과는 다음과 같다. #include #include #include using namespace std; int main(void){ int how_many_repeat; cin >> how_many_repeat; string checker; string non_pass_element; int count = 0; // how many group ..
[백준 1316번] 그룹 단어 체커처음에 이 문제를 보고 세운 전략은 string 자료형으로 그룹 단어를 받고, 앞 index부터 바로 앞 단어와 글자가 같으면 pass하고, 다르면 앞 index에서 등장한 문자인지를 확인하여 그룹단어 여부를 확인한다. 다만, 이 상황에서 이미 등장한 문자열을 string자료형에 concat을 시키는 방식으로 코드를 구현하였다. 해당하는 방식으로 코드를 구현한 결과는 다음과 같다. #include #include #include using namespace std; int main(void){ int how_many_repeat; cin >> how_many_repeat; string checker; string non_pass_element; int count = 0; // how many group ..
2020.08.29 -
c++의 경우는 문자열을 저장하는 방식이 여러가지가 존재한다. (아래에 설명하는 내용을 쓰기 위해서 #include 을 헤더쪽에 적고 시작하도록 하자.) 1. String 자료형으로 처리 이 방법은 Python에서 사용한 여러가지 방법들을 활용하여 계산할 수 있는 장점이 있다. append, pop등등을 활용할 수 있고 concat도 가능하다. 2. 배열로 처리 이 방법또한 매우 좋은 방법충에 하나이다. #include using namespace std; int main(void){ char test[100]; cin >> test; cout > test; cout > N; int result[N]; for(int i = 0; i > test..
[c++] 문자열 저장방법의 차이 비교 (String / 배열)c++의 경우는 문자열을 저장하는 방식이 여러가지가 존재한다. (아래에 설명하는 내용을 쓰기 위해서 #include 을 헤더쪽에 적고 시작하도록 하자.) 1. String 자료형으로 처리 이 방법은 Python에서 사용한 여러가지 방법들을 활용하여 계산할 수 있는 장점이 있다. append, pop등등을 활용할 수 있고 concat도 가능하다. 2. 배열로 처리 이 방법또한 매우 좋은 방법충에 하나이다. #include using namespace std; int main(void){ char test[100]; cin >> test; cout > test; cout > N; int result[N]; for(int i = 0; i > test..
2020.08.19 -
일반적으로 c++에서는 초기화한 크기가 배열의 크기보다 더 작은 경우에는 나머지는 모두 0으로 초기화 된다. 하지만, 0이 아닌 다른 수로 초기화 하고 싶을 때는 다음과 같은 방법을 이용해주면 된다. (단, 아래의 방식은 반드시 using namespace std;를 선언해주고 이용해야 한다. 그렇지 않다면 아래에 나오는 내용을 사용하려면 앞에 꼭 namespace인 std::를 꼭 붙어야 한다.) 1. fill_n 함수를 이용한다. 이 방식은 배열을 선언한 이후에 함수를 호출하여 원하는 배열의 Index에 숫자를 집어넣어주는 것이다. 사용 방법은 다음과 같다. fill_n(원하는 배열 시작 주소, 변경을 원하는 배열 Index 갯수, 변경하기를 원하는 숫자) 시작 주소라는 표현이 낯설수는 있으나, c의..
[c++] 배열의 초기화일반적으로 c++에서는 초기화한 크기가 배열의 크기보다 더 작은 경우에는 나머지는 모두 0으로 초기화 된다. 하지만, 0이 아닌 다른 수로 초기화 하고 싶을 때는 다음과 같은 방법을 이용해주면 된다. (단, 아래의 방식은 반드시 using namespace std;를 선언해주고 이용해야 한다. 그렇지 않다면 아래에 나오는 내용을 사용하려면 앞에 꼭 namespace인 std::를 꼭 붙어야 한다.) 1. fill_n 함수를 이용한다. 이 방식은 배열을 선언한 이후에 함수를 호출하여 원하는 배열의 Index에 숫자를 집어넣어주는 것이다. 사용 방법은 다음과 같다. fill_n(원하는 배열 시작 주소, 변경을 원하는 배열 Index 갯수, 변경하기를 원하는 숫자) 시작 주소라는 표현이 낯설수는 있으나, c의..
2020.08.18