C 18

[백준] 1439 뒤집기 C,C++

https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 그리디 문제이다. 문자열이 주어졌을때 뒤집어서 같은 숫자를 만들어야한다. 뒤집는 횟수를 구하기 위해 값이 바뀔때마다 하나씩 체크하고 2로 나누어주면된다. (2로 나눈 이유는 예제 입출력에서 규칙을 찾아내었다.) #include int main() { char s[1000000]; int cnt = 1, i; scanf("%s", s); for (i = 1; s[i] != '\0'; i++) { i..

STUDY/Algorithm 2022.03.12

[백준] 10597 순열장난 python, c/c++

https://www.acmicpc.net/problem/10597 10597번: 순열장난 kriii는 1부터 N까지의 수로 이루어진 순열을 파일로 저장해 놓았다. 모든 수는 10진수로 이루어져 있고, 모두 공백으로 분리되어 있다. 그런데 sujin이 그 파일의 모든 공백을 지워버렸다! kriii가 순 www.acmicpc.net 백트래킹 문제이다. 한글자, 두글자씩 읽어서 확인하고 마지막까지 순회했을 때 (포커의 스트레이트 같이) 모든 값이 이어지는지 확인한다. # import sys; input = sys.stdin.readline def backtrack(ind, limit): global s, stack if ind == limit: max_v = max(stack) for i in range(1..

STUDY/Algorithm 2022.03.09

[백준] 1890 점프 C/C++

https://www.acmicpc.net/problem/1890 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net DP로 풀면 되는데 자료형을 주의해야한다. #include #include #include int arr[100][100]; long long dp[100][100] = { 0, }; int main() { int n, i, j, tmp; scanf("%d", &n); int* arr = (int*)malloc(sizeof(int) * n * n); long long* dp = (lon..

STUDY/Algorithm 2022.02.20

[백준] 1966 프린터 큐 C

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net #define _CRT_SECURE_NO_WARNINGS #include #include int main() { int tc, N, M, i, j, cnt, pos; scanf("%d", &tc); for (i = 0; i < tc; i++) { // initialize cnt = 0; int num[10] = { 0, }; // num of objects scanf("%d %d", &N, &M); ..

STUDY/Algorithm 2021.11.29

[백준] 18258 큐2 C

https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net #define _CRT_SECURE_NO_WARNINGS #include #include # define FAIL 99999999 typedef struct _Node { int data; struct _Node* next; } Node; typedef struct _Queue { Node* front; Node* rear; int size; } Queue; void in..

STUDY/Algorithm 2021.11.29

[백준] 1987 알파벳 python(pypy), c

https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net import sys; input = sys.stdin.readline def backtrack(r, c): global answer # 1 길이 갱신 answer = max(answer, len(alphabet)) # 2 탐색 for i in range(4): nr = r + dr[i] nc = c + dc[i] if 0

STUDY/Algorithm 2021.10.26

[백준] 1912 연속합, python, C

https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net N = int(input()) nums = list(map(int, input().split())) dp = [-200000000 for _ in range(N + 1)] for i in range(N): dp[i + 1] = max(dp[i] + nums[i], nums[i]) print(max(dp)) 처음엔 슬라이딩 윈도우라고 생각해서 브루트포스 방식으로 접근했는데 시간초과가 나왔다. O(N^2) 그래..

STUDY/Algorithm 2021.07.27

[프로그래머스] 2개 이하로 다른 비트,월간 코드 챌린지 시즌2, python, C

https://programmers.co.kr/learn/courses/30/lessons/77885 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr def solution(numbers): answer = [0] * len(numbers) for i in range(len(numbers)): tmp = 1 while numbers[i] & tmp: tmp 1) return answer 월간 코드 챌린지 시즌 2를 참여했을땐 어떻게 풀어야하는지 잘 몰랐는데 다시 시간 잡고 푸니까 쉽게 풀렸다. 문제를 풀때 여러 단계로 규칙을 찾으려 노력했는데, 하위 두비트가 00,01,10 일경우 1을 더하면 되고 11인 경우 새로운 규칙을 찾는 것을 먼저 확인했다. 최하위 비트가 11 인경우..

STUDY/Algorithm 2021.06.25

[백준] 2750 수 정렬하기 C

https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net #define _CRT_SECURE_NO_WARNINGS #include int arr[1000] = { 0 }; int main() { int N; scanf("%d", &N); for (int i = 0; i < N; i++) { scanf("%d", &arr[i]); } for (int i = 0; i < N - 1; i++) { for (int j = i + 1; j < N; j++) { if ..

STUDY/Algorithm 2021.05.18