Problem Solving
-
[백준] 1158 - 요세푸스 문제 (python)Problem Solving/Python 2023. 7. 17. 15:27
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 포인트 문제를 읽자마자 덱에다 집어넣은 다음 뺄 차례면 빼고, 아니면 뒤로 보내는 식으로 덱이 다 빌 때 까지 돌리면 되지 않을까 싶어서 그대로 구현했다. 덱만 생각해낼 수 있다면 크게 어려운 건 없다 코드
-
[백준] 1157 - 단어 공부 (python)Problem Solving/Python 2023. 7. 12. 10:57
1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 포인트 문제를 읽자 계수 정렬이 떠올라서 dictionary 를 활용했습니다. 대소문자를 구분하지 않는다고 하였으니 upper 를 활용하여 모두 대문자로 바꾼 다음 카운트했고 가장 많이 등장한 글자가 하나면 그 문자를, 여러개면 ? 를 출력하게 구현했습니다. 코드
-
[백준] 1110 - 더하기 사이클 (python)Problem Solving/Python 2023. 7. 12. 10:41
1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 포인트 문제에 적힌 것 처럼 구현만 하면 됩니다. 다만 진입 시점에 주어진 숫자와 사이클 돌리는 숫자가 한번은 같을 수 밖에 없기 때문에 do - while 문처럼 실행될 필요가 있는데 python에는 do-while 문이 없기 때문에 저같은 경우엔 is_first라는 flag 를 둬서 이 부분을 처리했습니다. 코드
-
[백준] 1094 - 막대기 (재귀 풀이) (python)Problem Solving/Python 2023. 7. 11. 11:25
1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 포인트 문제 설명이 복잡하지만 그냥 64를 포함하여 그걸 절반으로 나눠서 나올 수 있는 수들 (64, 32, 16, 8, 4, 2, 1) 중 몇 개 수의 합으로 X를 만들 수 있는지를 묻는 문제입니다. 풀고 나서 보니 반복문을 많이 활용했던데 저같은 경우는 나누는 과정에서 재귀 함수를 활용했습니다. 코드
-
[백준] 1085 - 직사각형에서 탈출 (python)Problem Solving/Python 2023. 7. 11. 10:56
1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 포인트 주어진 좌표대로 직선을 그어 사각형을 만들었을 때 한수가 가장 빨리 갈 수 있는 경계선을 찾기만 하면 되기 때문에 한수의 위치와 사방의 거리를 확인해 min 함수로 answer 를 갱신해주는 방식을 택했고 정답처리를 받았다 코드
-
[백준] 1075 - 나누기 (python)Problem Solving/Python 2023. 7. 10. 09:29
https://www.acmicpc.net/problem/1075 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net 포인트 주어진 정수 N은 100 이상의 수라는 단서가 있으니, 단순히 뒤의 두 자리를 00부터 99까지 바꿔가며 조건에 맞는 수를 찾아 출력해주면 된다. 코드
-
[백준] 1037 - 약수 (python)Problem Solving/Python 2023. 7. 7. 16:19
1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 포인트 N의 진짜 약수가 모두 주어지고 이 중에 1과 N은 없다는 단서가 있다. 그렇기 때문에 주어지는 약수 중 가장 작은 값과 가장 큰 값을 곱하면 N이 된다. 별 거 없다. 그냥 문제 문장이 이상한 유형.. 코드