https://www.acmicpc.net/problem/1951
1951번: 활자
옛날에는 책을 만들 때, 한글자 한글자를 나눠서 활자를 만들어서 그걸 합쳐서 책을 만들었다고 한다. 예를 들면 가나다라는 글씨를 쓰기 위해서는 3개의 활자가 필요할 것이다. 그렇다고 할 때,
www.acmicpc.net
힝
대충 느낌대로 풀면서 코드 짜다보니까
산으로 가서
그냥 시원하게 한숨 자고 왔당ㅎ
n = int(input())
s = [0 for i in range(10)]
point = 1
while n :
while n % 10 != 9:
for i in str(n):
s[int(i)] += point
n -= 1
if n < 10:
for i in range(n + 1):
s[i] += point
s[0] -= point
break
else:
for i in range(10):
s[i] += (n // 10 + 1) * point
s[0] -= point
point *= 10
n = n // 10
print(sum(s) % 1234567)
이거 다른 분 코드인데요
저거 배열로 더해주는거 아이디어 짱이실래
ㅂ ㅔ 꼈슴다
죄송하고 감사하고,,
저거 문자열로 바꿔서 하나씩 가져와서 다시 정수형으로 바꾸는 부분 완전 인상깊었슴다
[백준] 1951 활자 with Python :: BackEnd Dev DreamTree It's (tistory.com)
[백준] 1951 활자 with Python
📌 BOJ 1951 활자 💡 조건 N(1 ≤ N ≤ 2,000,000,000) 가나다라는 글씨를 쓰기 위해서는 3개의 활자가 필요하다. N이하의 자연수를 활자로 표현하기 위해서는 몇 개의 활자가 필요한지 구하는 문제 10이
dreamtreeits.tistory.com
이분입니당
#include <stdio.h>
int main(void)
{
int n, ans = 9, num = 0, temp, jegob = 10;
scanf_s("%d", &n);
if (n <= 9)
{
ans = n;
}
else
{
temp = n;
while (temp > 9)
{
temp = temp / 10;
num++;
for (int i = 0; i < num - 1; i++)
jegob = jegob * 10;
ans += (n - (jegob - 1)) * (num + 1);
printf("%d\n", ans);
}
}
printf("%d", ans % 1234567);
return 0;
}
이게 제가 쓰던건데용
뭘하려하는지 짐작 가시나용
ㅠ
오늘 날씨가 춥더라,,거긴 어때,,?
-민정언니에게-
'BOJ' 카테고리의 다른 글
[python] 백준 1448번 - 삼각형 만들기(파이썬) (2) | 2023.02.16 |
---|---|
[python] 백준 2992번 - 크면서 작은 수 (2) | 2023.02.16 |
[python] 백준 1213번 - 팰린드롬 만들기 (1) | 2023.02.15 |
[python] 백준 4779번 - 칸토어 집합 (2) | 2023.02.14 |
[python] 백준 5587번 - 카드 캡터 상근이#이어서 도전~ (2) | 2023.02.14 |
댓글