문제 링크 https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 풀기 전에 아이디어 기적의 매매법 문제는 준현이와 성민이의 각 매매법인 BNP, Timing 중 어떤 방법이 더 수익률이 높은 지를 따져보는 문제였다. 주식은 하나로 정해져있고, 현금과 14일 동안의 주가를 입력받아서 더 수익이 높은 매매법을 출력하고 같으면 같다고 출력하면 된다. 문제가 상당히 길어서 난독증 와가지고 하.. 이게 뭔 소린지 이해하는지 좀 걸렸다..
Java
문제 링크 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 풀기 전에 아이디어 문제에서 주어진 정보는 일곱 난쟁이의 키는 무조건 100이라는 것, 입력은 난쟁이들의 각 키를 아홉 번 입력받아야 하는 것이 중요하다고 생각했다. -> 이러면 아홉 난쟁이들의 키를 다 더한다면 100이 당연히 넘겠다는 생각이 들었다. 그러면 순차적으로 더했을 때 언제 100이 되는지를 알아야 할탠데.. 약간 감이 오는 듯 안 오는 듯했다. 만약 정렬을 하게 된다면 정렬 후, ..
문제 링크 https://www.acmicpc.net/problem/2460 2460번: 지능형 기차 2 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 풀기 전에 아이디어 기차는 총 10개의 정차역이 있는 노선에서 운행되고 있다. -> for문으로 10번 돌려서 내리고 탄 사람 수를 입력받아야겠다. 내릴 사람이 모두 내리고 탄다. -> 어쨌든 한 역에서 (탄 사람 수 - 내린 사람 수)를 체크하면 되겠다. 역 번호 순서대로 운행된다. -> 입력받은 순서대로 기차에 탄 사람이 몇 명인지 세보자. 기차에 사람이 가장 많을 때의 사람 ..
문제 링크 https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 풀기 전에 아이디어 소의 위치는 0, 1 두 개뿐이라서.. 소 번호만큼 배열 생성한 후 소 번호에 맞는 인덱스에 0 , 1 바뀌는 거 체크해보기. 그리고 문제 보니까 소들 중에 제일 적게 건넌 횟수 구하는 것도 아니고, 그냥 소 건넌 횟수 다 합쳐서 구하는 거라서 별로 어렵진 않겠다는 생각이 들었다.. 과정 처음엔 2차원 배열을 생성할까 했는데 구현이 산으로 가는 것 같았다. 그래서 그..
[Silver II] 기차가 어둠을 헤치고 은하수를 - 15787 문제 링크 성능 요약 메모리: 230548 KB, 시간: 1304 ms 분류 비트마스킹, 구현 문제 설명 N개의 기차가 어둠을 헤치고 은하수를 건너려고 한다. 기차는 20개의 일렬로 된 좌석이 있고, 한 개의 좌석에는 한 명의 사람이 탈 수 있다. 기차의 번호를 1번부터 N번으로 매길 때, 어떠한 기차에 대하여 M개의 명령이 주어진다. 명령의 종류는 4가지로 다음과 같다. 1 i x : i번째 기차에(1 ≤ i ≤ N) x번째 좌석에(1 ≤ x ≤ 20) 사람을 태워라. 이미 사람이 타있다면 , 아무런 행동을 하지 않는다. 2 i x : i번째 기차에 x번째 좌석에 앉은 사람은 하차한다. 만약 아무도 그자리에 앉아있지 않았다면, 아무런 행..
[Silver II] 스타트와 링크 - 14889 문제 링크 성능 요약 메모리: 21512 KB, 시간: 464 ms 분류 백트래킹, 브루트포스 알고리즘 문제 설명 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합이다. Sij는 Sji와 다를 수도 있으며..
[Silver II] 배열 돌리기 - 17276 문제 링크 성능 요약 메모리: 219524 KB, 시간: 6124 ms 분류 구현 문제 설명 크기가 n x n인 2차원 정수 배열 X가 있다. (n은 홀수) X를 45° 의 배수만큼 시계방향 혹은 반시계방향으로 돌리려고 한다. X를 시계 방향으로 45° 돌리면 아래와 같은 연산이 동시에 X에 적용되어야 한다: X의 주 대각선을 ((1,1), (2,2), …, (n, n)) 가운데 열 ((n+1)/2 번째 열)로 옮긴다. X의 가운데 열을 X의 부 대각선으로 ((n, 1), (n-1, 2), …, (1, n)) 옮긴다. X의 부 대각선을 X의 가운데 행 ((n+1)/2번째 행)으로 옮긴다. X의 가운데 행을 X의 주 대각선으로 옮긴다. 위 네 가지 경우 모두..