안녕하세요. 우당탕탕 개발일지 입니다. 꾸준히 문제 풀기 다시 시작해보겠습니다.
codetree가 마음에 들어 순서대로 풀 것 같습니다. 아자아자 화이팅!
1. 최대로 겹치는 구간
1. 가장 많이 겹치는 구간 구하기 -> sort 함수
2. -100~+100구간에 음수 포함 -> 입력 +100 해서 저장.
3. 구간 -> 시작,끝 구간을 각각 배열 2개에 저장
4. 구간에 몇번 들어가는지 카운트 -> 시작~끝까지 count
#include <iostream>
#include<algorithm>
using namespace std;
int main() {
int n;
cin>>n;
int a[200];
int b[200];
for(int i=0; i<n; i++)
{
cin>>a[i]>>b[i];
a[i]+=100;
b[i]+=100;
}
int k[200];
for(int i=0; i<200; i++)
{
k[i]=0;
}
int x=0;
while(true)
{
if(x>n)
break;
for(int i=a[x]; i<b[x]; i++)
{
k[i]++;
//cout<<i<<" "<<a[x]<<" "<<b[x]<<" "<<k[i]<<"\n";
}
x++;
}
sort(k,k+200);
cout<<k[199];
return 0;
}
2. 왔다 갔던 구역2
#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
int a[1000];
int b[1000];
int cur=0;
int arr[2000]={0};
for(int i=0; i<n; i++)
{
int x;
char c;
cin>>x>>c;
if(c=='R')
{
a[i]=cur;
b[i]=cur+x;
cur=cur+x;
}
else if(c=='L')
{
a[i]=cur-x;
b[i]=cur;
cur=cur-x;
}
a[i]=a[i]+1000;
b[i]=b[i]+1000;
}
for(int i=0; i<n; i++)
{
for(int j=a[i]; j<b[i]; j++)
{
arr[j]++;
}
}
int count=0;
for(int i=0; i<2000; i++)
{
if(arr[i]>=2)
{
count++;
}
}
cout<< count;
// Please write your code here.
return 0;
}
3. 흰검 칠하기
-> 원래는 define 안쓰고 배열에 바로 숫자 썼는데 컴파일 시간이 너무 오래 걸려서 define 사용함.
(#define은 메모리를 사용하지 않음)
#include <iostream>
using namespace std;
#define MAX_K 100000
int main() {
// Please write your code here.
int n;
cin>>n;
int x;
char c;
// 4개 이상되는거 걸러내기 위해서 필요함.
int cnt_b[2*MAX_K+1];
int cnt_w[2*MAX_K+1];
//색 넣을 배열
int arr[2*MAX_K+1];
int cur=MAX_K;
for(int i=0; i<n; i++)
{
cin>>x>>c;
if(c=='R')
{
while(true){
--x;
arr[cur]=2;
cnt_b[cur]++;
if(x!=0) cur++;
else break;
}
}
else
{
while(true)
{
--x;
arr[cur]=1;
cnt_w[cur]++;
if(x!=0) cur--;
else break;
}
}
}
int w=0,b=0,g=0;
for(int i=0; i<2*MAX_K; i++)
{
if((cnt_b[i]>=2) && (cnt_w[i]>=2))
{
g++;
}
else if(arr[i]==1)
{
w++;
}
else if(arr[i]==2)
{
b++;
}
}
cout<<w<<" "<<b<<" "<<g;
return 0;
}
728x90
'[알고리즘] > [CodeUp][CodeTree]' 카테고리의 다른 글
[codetree] 프로그래밍 연습 _시뮬레이션2_최장 연속 부분 수열 (0) | 2025.03.27 |
---|---|
[codetree] 프로그래밍 연습 _정렬된 숫자 위치 알아내기 C++ (0) | 2025.01.29 |
[codetree] 프로그래밍 연습 _재귀함수 (0) | 2024.12.11 |
[codetree] 프로그래밍 연습_변수의 영역 (1) | 2024.11.14 |
[codetree] 프로그래밍 연습_ call by value/ call by reference (메모리 초과 해결) (1) | 2024.11.12 |