코딩테스트
[백준] OX퀴즈
https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 간단한 구현 문제입니다. 우선 문제부터 간단하게 요약하면, O인 문제들에 대해 점수를 주는데, 각 문제의 점수는 그 문제까지의 연속한 O의 갯수로 정의합니다. 이때, 각각의 OX표에서 총 점수의 합을 구해서 print해야 하는 문제입니다. 변수를 두어 계속 늘려주면서 연속한 O를 counting하고, 만약 X를 만나게 되면 다시 초기화 시켜주는 형태로 코드를 진행하면 됩니다. ..
[백준] 별 찍기 - 2
https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 간단한 구현 문제입니다. 우선 문제부터 간단하게 요약하면, 숫자 N이 주어지면, 별을 1개부터 N개까지 우측 정렬하여 출력해야 하는 문제입니다. 간단하게 for loop를 이용하여 구현하면 됩니다. #include int main(){ int k; std::cin >> k; for(int i = 0; i
[백준] 단어공부
https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net map 자료구조를 이용하는 문제입니다. 우선 문제부터 간단하게 요약하면, 알파벳 대소문자로 만들어진 단어가 주어지면, 단어에서 가장 많이 사용된 알파벳이 무엇인지 대문자로 출력해야 합니다. 우선 대소문자로 된 알파벳을 대문자 혹은 소문자 하나로 통일한 후, 각각의 알파벳의 갯수를 map자료구조로 counting한 후, 결과를 도출하면 됩니다. 실제 구현은 아래와 같습니다. #include #include #include #incl..
map 안의 원소 출력
/* map 등의 자료구조는 알아서 변경해서 사용하기 */ for(map::iterator it = s_map.begin(); it != s_map.end(); ++it) { std::cout first
[백준] 감시
https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net DFS를 통한 구현 문제입니다. 우선 문제부터 간단하게 요약하면, 다음 그림과 같이 4방향을 감시할 수 있는 cctv들이 놓여있는 방이 있습니다. 이 방에는 벽이 있고, 만약 벽이 있다면, cctv는 벽 뒷편은 보지 못합니다. 이 때, cctv의 사각지대를 최소화 시키는 것이 문제입니다. 실제로 문제가 조금 기니 한번 읽어보는 것을 권장합니다. DFS를 통해 각각의 cctv에 대해 가능..
[백준] 톱니바퀴
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 구현 문제입니다. 우선 문제부터 간단하게 요약하면, 톱니 바퀴가 4개 있고, 각각 8개의 톱니를 가집니다. 이 때, 톱니들은 N, S극을 가집니다. 톱니는 바로 옆의 톱니와 붙어있는 곳의 극(N,S)가 다르면, 옆의 톱니와 반대방향, 같다면, 움직이지 않습니다. 이 때, 톱니바퀴를 회전시킨 방법이 주어지면, 최종적으로 톱니바퀴가 어떤 상태인지를 통해 구한 점수를 return 해야 합니다. 직접..
[백준] 경사로
https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 구현 문제입니다. 우선 문제부터 간단하게 요약하면, NxN의 지도가 주어지고, 이 지도의 가로줄과 세로줄을 "길" 이라고 정의합니다. 이 때, 길들은 모두 높이가 같거나 경사로를 놓을 수 있는 경우에만 지나갈 수 있을 때, 경사로의 길이와, 지도가 주어질 때, 길중에서 지나갈 수 있는 길의 수를 구하는 것이 문제입니다. 문제의 조건이 조금 있으니 위의 링크에서 실제로 예시와 문제를 같이 읽어보는 것이 정확합니다. 구현 ..
[백준] 스타트와 링크
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 총 두가지 방법으로 해결할 수 있는 문제입니다. (직접 구현과, 아이디어) 우선 문제부터 간단하게 요약하면, 짝수명의 사람들을 두 팀으로 나누는데, 이때, 각각의 사람들이 서로 같은 팀에 있을 때의 캐미 점수가 표로 주어집니다.(팀캐미) 이 때 , 두 팀의 점수 캐미의 합 차이가 최소가 되도록 팀을 나눌 때, 점수 차의 최솟값을 구해야 하는 문제입니다. (실제로 문제를 한번 읽어보는 것을 추천합니다. ) 우선 시간이 ..