알고리즘/BOJ 1235

백준 16120번 PPAP

문제 링크입니다: https://www.acmicpc.net/problem/16120 16120번: PPAP 첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다. www.acmicpc.net 문자열의 길이가 최대 1,000,000이기 때문에 O(N)으로 풀어야하는 문제였습니다. 알고리즘은 아래와 같습니다. * cnt는 'P'가 연속해서 나오는 횟수 1. 현재 인덱스가 'P'라면 cnt를 증가시킵니다. 2. 현재 인덱스가 'A'라면 2-1. 앞에 연속해서 P가 2개 이상 나왔고 바로 뒤에 문자가 P라면 PPAP 조건 성립하므로 해당 PPAP 문자열을 P로 치환 따라서 cnt를 하나 감소시킵니다. 2-2. 2-1을 성립하..

알고리즘/BOJ 2019.10.22

백준 2012번 등수 매기기

문제 링크입니다: https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net 그리디하게 접근하면 되는 문제였습니다. N이 최대 500,000이기 때문에 결과의 자료형은 long long으로 해줘야하는 것이 핵심이였습니다. 예상 등수를 오름차순으로 정렬한 후 순서대로 등수를 부여하면서 차이를 더해나가면 되는 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2019.10.22

백준 3036번 링

문제 링크입니다: https://www.acmicpc.net/problem/3036 3036번: 링 문제 상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다. 상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌아간다는 사실을 발견했다. 나머지 링은 첫 번째 링 보다 빠르게 돌아가기도 했고, 느리게 돌아가기도 했다. 이렇게 링을 돌리다 보니 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 도는지 궁금해졌다. 링의 반지름이 주어진다. 이때, 첫 번째 링을 한 바퀴 돌리면, www.acmicpc.net 첫 번째 링 크기와 이후의 링 크기의 최대 공약수를 구하고 각각을 나눈 숫자를 출력하면 되는 문제였습니다. 개발환경:Visua..

알고리즘/BOJ 2019.10.21

백준 15736번 청기 백기

문제 링크입니다: https://www.acmicpc.net/problem/15736 15736번: 청기 백기 예제 입력 1의 경우 1, 2, 3번 깃발이 존재하고, 3명의 선수가 참가한다. 첫 번째 선수는 1의 배수의 번호를 가진 깃발을 뒤집는다. 초기에 청색이였던 깃발은 첫 번째 선수에 의해 모두 백기로 된다. 두 번째 선수는 2의 배수의 번호를 가진 깃발, 2번 깃발을 뒤집는다. 3개의 깃발은 백 청 백의 순서로 놓여있게 된다. 마지막 선수는 3의 배수의 번호를 가진 깃발, 3번 깃발을 뒤집는다. 마지막 깃발의 상태는 백 청 청이 되고, 따라서 백기의 수는 www.acmicpc.net 유명한 문제입니다. 제가 기억하기로 원래 문제는 1번부터 100번까지의 문이 있고 1~100까지 각자의 배수에 속하..

알고리즘/BOJ 2019.10.21

백준 1253번 좋다

문제 링크입니다: https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 해쉬 맵 설계를 잘해야하는 문제였습니다. 좋은 숫자의 정의는 "해당 숫자를 제외한 다른 두 숫자의 합으로 해당 숫자를 표현할 수 있는 숫자" 이므로 해당 숫자의 좋은 숫자 여부와, 인덱스를 저장해야 합니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2019.10.21

백준 2467번 용액

문제 링크입니다: https://www.acmicpc.net/problem/2467 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 -1,000,000,000 이상 1,000,000,000 이하이다. N개의 용액들의 특성값은 모두 서로 다르고, 산성 용액만으로나 알칼리성 용액만으로 입력이 주어지는 경우도 있을 수 있다. www.acmicpc.net 예전에 비슷한 문제를 풀었던 기억이 있습니다. 투 포인터 알고리즘을 통해 풀면 시간 안에 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다!..

알고리즘/BOJ 2019.10.21

백준 7785번 회사에 있는 사람

문제 링크입니다: https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모든 사람을 구하는 프로그램을 작성 www.acmicpc.net map을 사용하면 쉽게 풀 수 있는 문제였습니다. 동일한 사람이 여러번 출근 퇴근할 수 있다는 점을 유의하면 ..

알고리즘/BOJ 2019.10.21