일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백준#BOJ#1939#중량제한
- 백준#boj#12755
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#BOJ#12865#평범한배낭
- 백준#boj#16932#모양만들기
- 백준#BOJ#2615#오목
- 백준#BOJ#8012#한동이는영업사원
- Today
- Total
목록알고리즘,SQL/codeforce 문제 (7)
순간을 성실히, 화려함보단 꾸준함을
codeforces.com/contest/1453/problem/B Problem - B - Codeforces codeforces.com 문제 : 길동이가 실행할 수 있는 행동은 2가지 입니다. 1)suffix of array 의 원소들을 1씩 전부 증가 2)suffix of array 의 원소들을 1씩 전부 감소 suffix of arrary : 오른쪽부터 n번째 원소까지의 집합을 뜻합니다. 이때,길동이는 하나의 원소를 자신이 원하는 원소로 최소 1번 바꿀 수 있습니다.(바꾸지 않을 수도 있다는 뜻입니다.) 모든 원소들의 값들이 동일한 원소가 될때까지 몇번 길동이는 행동을 해야하는지 최소값을 구하는게 문제입니다. 해설 : 먼저 당장은 길동이가 원소값을 변경하는 것을 생각하지 말고 주어진 상황에서 어떻..
codeforces.com/contest/1453/problem/A Problem - A - Codeforces codeforces.com 문제 : 100x100 크기의 기차길이 교차하며 직선방향으로 존재합니다. 이때 n,m 이 주어지고 n 개의 기차가 맨밑에서 위로 m개의 기차가 맨왼쪽에서 오른쪽으로 진행될때 충돌이 발생하지 않기 위해 몇개의 최소 몇개의 기차를 제거해야 하는가?가 문제입니다. 해설 : 결국 기차가 충돌하는 경우는 단 한가지 입니다. x축 y축 각각에서 같은 좌표에서 출발하면 충돌이 발생하겠죠. 이는 각 입력마다 들어오는 좌표 중 중복된 값이 들어오면 count 해주어 하나씩 답을 구하면 됩니다. #include using namespace std; set s; void solve();..
codeforces.com/contest/1428/problem/C Problem - C - Codeforces codeforces.com 문제 : 문자열이 주어지고 문자열중 'AB'와 'BB'가 존재한다면 증발한다. 이 작업을 반복하여 실행할 때 문자열을 최소로 만들어서 길이를 구하는 문제이다. //참고로 백준문제 : 문자열 폭발 과 동일한 문제이다. 해설 : stack을 이용하면 된다. 하나씩 넣고 조건에 맞는 문자열이라면 pop 해주는 식으로. #include using namespace std; using ll = long long; int arr[2][300010]; void solve(); int main() { ios::sync_with_stdio(false); cin.tie(0); int ..
codeforces.com/contest/1428/problem/B Problem - B - Codeforces codeforces.com 문제 : n개의 간선의 정보가 주어진다. - : 양옆으로 갈 수 있는 간선 > : i 에서 (i+1)%n 으로 갈 수 있는 간선 ) 만으로 이루어져 있거나 (-,> t; while (t--) solv..
codeforces.com/contest/1428/problem/A Problem - A - Codeforces codeforces.com 문제 : 쥐가 상자를 끌고 다닌다. 이때 항상 쥐는 상자의 인접한 위치에만 있을 수 있고 상자를 끌을 수 있다. 쥐는 1단위로 움직일 수 있다. 이때 상자의 초기 위치(x1,y1)이 주어지고 이를 목적 위치(x2,y2)에 옮기기 위해 최소로 움직이는 횟수를 구하면 된다. 예시) (1,1) - > (2,2) 로 옮긴다고 해보자 1) 상자 (1,1) , 쥐(2,1) //init 2) 상자(2,1) , 쥐(3,1) 3) 상자(2,1) , 쥐(3,2) 4) 상자(2,1) , 쥐(2,2) 5) 상자(2,2) , 쥐(3,2) //end 그러면 4번의 움직임에 원하는 위치에 상자..
codeforces.com/contest/1427/problem/B Problem - B - Codeforces codeforces.com 문제 : 문자열 s가 주어지고 W는 이김,L는 진거다. 이때 연속적으로 이긴다면 +2포인트를 얻고, 진다면 +0포인트를 얻는다. 또한, 연속된 W의 문자열 중에 제일 첫번째 W는 +1 포인트만 얻는다. 그리고 m번만큼 L->W로 바꿀 수 있다. 이때 최대로 얻을 수 있는 점수를 구해라 해설: m번만큼 L->W를 바꿔서 얻을 수 있는 경우의 수는 3가지다 1) W와 W 사이에 존재하는 L을 변경하였을때 => +3 포인트를 얻을 수 있다. (WLW ->WWW : +2,+1) 2) W의 뒤에 존재하는 L을 변경하였을때 => +2 포인트를 얻을 수 있다. (WLL - >WW..
codeforces.com/contest/1427/problem/A Problem - A - Codeforces codeforces.com 문제 : 배열 a 가 주어지고 a를 재배열해서 b 배열을 만든다. 이때 조건은 처음부터 순차적으로 더했을때 0이 생기면 안되게 만들어야 된다. 해설 : 1) a의 원소들을 전부 더했을때 0이면 "NO" 2) a의 원소들을 전부 더했을때 0이 아니면 "YES" 2-1)이때 다 더했을때 0보다 크면 내림차순으로 정렬해주고 2-2)다 더했을때 0보다 작으면 오름차순으로 정렬해 주면 된다. =>이렇게 해주면 중간에 0이 발생하는 구간이 생기지 않는다. #include using namespace std; using ll = long long; void solve(); boo..