c++(39)
-
[알고리즘] 2852번: NBA 농구
0. 문제 2852번: NBA 농구 첫째 줄에 골이 들어간 횟수 N(1 N; for(int i=0; i> tNum >> input; now = parse(input); if(score1>score2){ t1 += now - prevTime; }else if(score1score2){ t1 += 2880 - prevTime; }else if(score1
2023.09.16 -
[알고리즘] 3474번: 교수가 된 현우
0. 문제 3474번: 교수가 된 현우 첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1 N; while(N >= i){ ret += N/i; i*=5; } cout
2023.09.16 -
[알고리즘] 10709번: 기상캐스트
0. 문제 10709번: 기상캐스터 출력은 H 행으로, 각 행에는 공백으로 구분된 W 개의 정수를 출력한다. 출력의 i 번째 행 j 번째 정수 (1 ≦ i ≦ H, 1 ≦ j ≦ W) 는, 지금부터 몇 분후에 처음으로 구역 (i, j) 에 구름이 뜨는지를 표시 www.acmicpc.net 1. 문제 이해 0 : 처음에 ‘c’인 경우 1 ~ 99 : 처음은 ‘.’이지만 시간이 지나면서 구름이 뜨는 경우 → 처음은 ‘.’이고 왼쪽에 ‘c’가 있음. -1 : 처음은 ‘.’이지만 시간이 지나도 구름이 뜨지 않음 → 처음은 ‘.’이고 왼쪽에 ‘c’가 없음. H*W 크기의 배열에 입력값을 저장하고[0][0]에서부터 순회하면서 처리한다. ‘.’에 대한 각 행의 기본값은 -1이다. ‘c’를 만나면 그곳은 0으로 처리하..
2023.09.10 -
[알고리즘] 2870번: 수학숙제
0. 문제 2870번: 수학숙제 종이에서 찾은 숫자의 개수를 M이라고 하면, 출력은 M줄로 이루어져야 한다. 각 줄에는 종이에서 찾은 숫자를 하나씩 출력해야 한다. 이때, 비내림차순으로 출력해야 한다. 비내림차순은 내림차 www.acmicpc.net 1. 문제 이해 숫자와 알파벳 소문자로 되어있는 글자가 N 줄 있다. → 아스키코드 사용해서 숫자와 알파벳 구분 모든 숫자의 앞과 뒤에 문자가 있거나, 줄의 시작 또는 끝이어야 한다. → 숫자면 문자열에 추가. 알파벳이면 문자열이 비어있지 않다면 vector에 추가하고 문자열 초기화. 숫자의 앞에 0이 있는 경우에는 정리하면서 생략할 수 있다. 하지만 000은 0이다. → int로 변환하기. 숫자를 모두 찾은 뒤, 이 숫자를 비내림차순으로 정리해야 한다. →..
2023.09.06 -
[알고리즘] 4659번: 비밀번호 발음하기
0. 문제 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 1. 문제 이해 모음(a,e,i,o,u) 하나를 반드시 포함하여야 한다. → for문으로 검사하기 모음이 3개 혹은 자음이 3개 연속으로 오면 안 된다. → 모음, 자음의 반복 횟수를 저장하고 for문으로 검사하기. 같은 글자가 연속적으로 두번 오면 안 되나, ee와 oo는 허용한다. → 최근 문자와 해당 문자의 반복 횟수를 저장하고 for문으로 검사하기. 2. 제출 //백준 4659번: 비밀번호 발음하기 #include using namespa..
2023.09.05 -
[알고리즘] 2828번: 사과 담기 게임
0. 문제 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M> n >> m >> j; for(int i=0; i> apple; apple--; bool goLeft = apple < pos; if(goLeft){ ret += abs(apple - pos); pos = apple; }else{ bool notMove = (apple - pos) < m; if(notMove) continue; int distance = apple - pos - m +1; ret += distance; pos += distance; } } cout
2023.09.05 -
[알고리즘] 2910번: 빈도 정렬
0. 문제 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 1. 문제 이해 정렬에는 두 가지 정보가 필요함. 숫자의 빈도 c++의 int는 4바이트로 –2,147,483,648 ~ 2,147,483,647 값을 가진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 숫자의 등장 순서 “숫자”에서 “등장 순서”를 얻을 수 있어야 함. vector와 map 두 개를 사용하기. 또는 vector에 tuple을 넣고 커스텀 함수로 정렬하기. tuple 생성하고 정렬하기. → 빈도는 내림차순, 순서는 오름차순 정렬임. → 커스텀 정렬 함..
2023.09.05 -
[알고리즘] 1992번: 쿼드트리
0. 문제 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 1. 문제 이해 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축. (0(0011)(0(0111)01)1) 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래 모두가 같은 값이 될 때까지 4등분 한다. → 재귀적으로 호출한다. 2. 제출 // 백준 1992번 퀴드트리 #include #include using namespace std; const int max_n = 64; const int dy[] = {..
2023.09.03