전체 글105 2477_참외밭 ▶ 실버2 풀이 입력은 항상 6번 주어지고, 전체 사각형 - 작은 사각형의 방식으로 면적을 구한다. 방향과 길이가 주어지는데, 두 번 주어지는 방향이 두 개이고 한 번 주어지는 방향이 두 개이다. 두 번 주어지는 방향에서 작은 사각형이 존재한다. ex) 7 4 50 2 160 3 30 1 60 3 20 1 100 전체 사각형: 50 * 160 작은 사각형: 60 * 20 전체 사각형은 한 번만 주어지는 방향의 길이를 곱하면 되고, 작은 사각형은 두 번 주어지는 방향 중 가운데 두 길이를 곱하면 된다. 따라서, 두 번 주어지는 방향과 한 번 주어지는 방향을 구분하고, 한 번 주어지는 방향 중 가운데 껴 있는 두 길이를 구한다. 코드 #include #include #include #include #incl.. 2023. 3. 12. 1339_단어 수학 ▶골드4 문제 풀이 이 문제는 문자 간의 우선순위를 정하는게 중요한 문제였다. 주어진 문자들 중에서 가장 큰 자릿수를 가진 문자가 가장 큰 수를 부여받고, 그 다음 큰 자릿수를 가진 문자가 그 다음 큰 수를 부여받고.... 이런 순으로 주어진 모든 문자에 숫자가 할당되면 이를 더하고 값을 출력한다. 처음에는 어렵게 생각해서 문자열이 긴 순으로 저장하고 문자를 할당하는 map을 따로 만들어서 할당 여부를 확인하고...뭐 이런식으로 진행했는데 너무 비효율적인 방법이었다. 자릿수를 생각하지 않아도 되도록 주어진 알파벳의 번호에 해당하는 인덱스 배열에 자릿수에 해당하는 값을 더한다. ex) ACDB -> 1320(거꾸로) -> alpha[0] = 1, alpha[2] = 10, alpha[3] = 100, al.. 2023. 3. 8. 1080_행렬 ▶실버1 문제 풀이 먼저 행렬 A와 B를 입력받고, 같은 위치에 있는 A와 B의 요소가 다른지 확인한다. 새로운 2차원 배열 C를 생성하고 두 수가 다르다면 1, 같다면 0을 C에 넣는다. C의 요소를 모두 탐색하면서 C의 요소가 1이라면 그 주변의 3 X 3 행렬을 모두 토글하고 다시 탐색한다. 전부 탐색을 했다면 C 행렬의 요소가 모두 0일 경우에만 정답을 출력하고, 나머지 경우에는 -1을 출력한다. 코드 #include #include #include #include #include #include #include #include using namespace std; string a[51]; string b[51]; //a와 b의 차이 유무를 나타내는 행렬 int c[51][51]; int main.. 2023. 3. 7. 1213_팰린드롬 만들기 ▶실버3 문제 풀이 생각해야할 것 1. I'm Sorry Hansoo가 출력될 조건 : 문자의 개수가 홀수인 문자가 두 개 이상일 경우 2. 사전 순으로 출력하는 방법 3. 절반 인덱스 지나면 반대로 출력하는 방법 먼저 문자의 개수를 세기 위해 배열을 선언하고 입력한 문자의 개수를 센다. for문으로 A부터 차례대로 탐색하는데, ① 해당 알파벳 개수가 존재하지 않는 경우, ② 알파벳 개수가 홀순데 처음 등장했을 경우, ③ 알파벳 개수가 홀순데 또 등장했을 경우, ④ 알파벳 개수가 짝수인 경우 로 나누어 진행한다. ① 해당 알파벳 개수가 존재하지 않는 경우 ☞ 다음 과정을 진행하지 않고 건너뛴다. ② 알파벳 개수가 홀순데 처음 등장했을 경우 ☞ 홀수 개 문자가 등장했다는 것을 불리언 값으로 나타내고, 정답.. 2023. 3. 5. 1965_상자넣기 ▶실버2 문제 풀이 전형적인 DP 문제. 가장 긴 증가하는 부분 수열 문제와 유사하다. 다음과 같은 형식으로 풀었다. 코드 #include #include #include #include #include #include using namespace std; int box[1001]; int dp[1001]; int main(void) { ios::sync_with_stdio(NULL); cin.tie(0); cout.tie(0); int n; cin >> n; for (int i = 0; i > box[i]; dp[i] = 1; } int ans = 1; for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) { if (box.. 2023. 3. 3. [C++] 스트림과 파일 입출력 Introduction C++에서의 스트림이란 무엇인지, 이와 관련하여 파일 입출력은 어떻게 하는지 알아보려고 한다. 스트림이란? C++ 프로그램은 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림이라는 흐름을 통해 다룬다. 스트림은 운영체제에 의해 생성되며, 실제의 입력이나 출력의 중간 매개자 역할을 한다. 또, 스트림은 입력이 바로바로 전달하는 것이 아닌 내부의 버퍼를 이용하여 입력을 한데 모아 한꺼번에 전송한다. 표준 입출력 & 파일 입출력 표준 입출력 스트림은 iostream, 파일 입출력 스트림은 fstream 헤더파일의 클래스에서 관리한다. 표준 입출력에서는 cin/cout의 객체를 사용하지만, 파일 입출력에서는 ifstream/ofstream의 객체를 사용한다. 즉, 우리가 흔히 콘솔이나 .. 2023. 3. 2. 이전 1 ··· 5 6 7 8 9 10 11 ··· 18 다음