1213번: 팰린드롬 만들기첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.www.acmicpc.net1. 문제 내용 2. 접근 방식팰린드롬이 가능하기 위한 조건을 고민하자모든 알파벳이 짝수 개씩 있을 경우딱 한 개의 알파벳만 홀수 개가 있고, 나머지는 모두 짝수 개씩 있을 경우팰린드롬을 만들 수 있는지, 없는지를 알아내기 위해선 각 알파벳의 개수를 카운팅해야 한다. 따라서 key는 알파벳을, value는 해당 알파벳의 개수를 나타내는 딕셔너리를 생성할 필요가 있다. 조건을 만족할 경우, 어떤 원리로 팰린드롬을 만들까?AAAABB가 입력문일 때, AABBAA, BAAAAB 2개의 팰린드롬이 ..
17521번: Byte Coin 입력은 표준입력을 사용한다. 첫 번째 줄에 요일 수를 나타내는 양의 정수 n과 초기 현금 W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)가 주어진다. 다음 n 개의 줄에서, i번째 줄은 i일의 바이트 코인 가격을 나 www.acmicpc.net 1. 문제 내용 2. 접근 방식 최대 수익은 극소값에서 사고, 극대값에서 팔기를 반복하면 된다. 극소값은 함수가 감소에서 증가로 바뀌는 지점이고, 극대값은 증가에서 감소로 바뀌는 지점이다. 코인을 사고 팔 때, 현재 가지고 있는 coin 개수와의 연관 관계 s 리스트를 순환하면서 언제가 극대값이고, 언제가 극소값인지 파악을 하기 위해선 coin 개수를 함께 고려해야 한다. 위 그래프로 예시를 들어보자. 극소값이 4일째인 2라..
1246번: 온라인 판매 첫째 줄에 정수 N(1 ≤ N ≤ 1,000)과 M(1 ≤ M ≤ 1,000)이 입력된다. 둘째 줄부터 M+1번째 줄까지 i+1번째 줄에는 Pi(1 ≤ Pi ≤ 1,000,000)가 입력된다. www.acmicpc.net 1. 문제 내용 2. 접근 방식 최대 수익은 최대한 가격이 높을수록 발생할 가능성이 높다. 따라서 우선 Pi를 내림차순 정렬한다. 이후 P0 가격 * 1개의 판매 가격과 P1 가격 * 2개의 판매 가격을 비교한다. 이것을 N > M일 경우에는 M번, N m else n for i in range(loop): temp = ps[i] * (i + 1) if profit
10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 1. 문제 내용 2. 접근 방식 미르코가 만들고 싶어하는 수가 존재하지 않는 경우? 가장 기본적으로 30의 배수는 무조건 일의 자리 숫자가 0이다. 따라서 입력 받은 수에 0이 없다면 무조건 -1이 출력되어야 한다. 입력받은 수의 숫자를 가장 큰 순으로 재배치한 후 30으로 나눈다. 즉, 입력 받은 수가 2104라면 각 숫자는 2, 1, 0, 4이고, 이를 큰 순으로 배치하면 4210이다. 이렇게 새로 구한 숫자가 30의 배수인지 확인한다. 3. 정답 코드 list..