일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- spring webflux
- Spring
- 디자인 패턴
- 백준
- Data Structure
- Algorithm
- JavaScript
- redis
- 운영체제
- Heap
- Kafka
- MSA
- 컴퓨터구조
- JPA
- C
- design pattern
- 네트워크
- Java
- 자료구조
- OS
- Galera Cluster
- 자바
- c언어
- 알고리즘
- mongoDB
- react
- 파이썬
- IT
- MySQL
- Proxy
- Today
- Total
목록분류 전체보기 (214)
시냅스
https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 현재 채널을 기준으로 고장난 버튼을 제외한 버튼을 눌러 최소한으로 목표 채널까지 도달하는 문제였다. 5457의 경우 5455 혹은 5459 에서 2번을 ++하거나 --하여 이동하는 것으로 5455(4) + ++ (2)로 총 6이다. 현재 채널의 경우, 100으로 만약 100이 목표채널로 설정되면 그냥 0을 출력, 또 고장난 버튼이 없다면 목표채널의 길이값을 출력해주면 된다. 브루트..
https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 문제는 진수를 달리하는 각 숫자들에 대해 10진수로는 몇 년도인지를 나타내라는 문제였다. 다만 그것들에 대한 나머지만 주어지기 때문에 브루트포스를 이용하여 년도를 계속 더해주는 방식으로 풀이했다. code e, s, m = map(int, input().split()) # 각각 15, 28, 19 일때는 나머지가 0 이기때문에 치환해줬다. if e == 15: e = 0 if s == 28: s = 0..
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 브루트포스를 활용하여 문제를 해결하였다. 문제 제한 시간이 1초라 시간초과에 유의했으나, 애초에 입력값이 작아 o(n^4) 되는 나의 솔루션도 문제가 없는 것 같다. 풀이는 입력값을 받은 배열에 있는 모든 원소를 가로로 한 번 교체하여 최대값을 확인하고, 세로로 한 번 교체하여 최대값을 확인하였다. 다만 교체한 후에는 원상복귀하여 배열에 이상이 없게 해야했다. 그렇게 도출된 cnt와 result를 비교하여 더 큰 값을 결과값으로 도출하였다. 파이썬의 스왑은 언제나 감동적이다... code n = int(input(..
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 브루트포스를 단순히 모든 가능성을 체크하는 이중 반복문을 통해 풀었다. 총 합에서 두 개의 요소를 삭제했을 때 100이 나오게 되면 정답으로 처리해주었다. 다만, 파이썬 문법에 아직은 익숙하지 않다고 느끼는 부분이 몇몇 있었는데, del 키워드를 이용해서 리스트의 요소를 삭제하면 리스트의 인덱스가 무너져 원하지 않는 값이 도출된다는 점, 마찬가지로 remove 키워드를 사용하여 삭제할 때에도 원소를 직접 ..
https://www.acmicpc.net/problem/17425 17425번: 약수의 합 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 약수의 합2와 이어지는 문제인듯 했으나, 그렇지 않았다. https://liltdevs.tistory.com/49?category=1054462 백준 boj 17427 - 약수의 합 2 (파이썬, python) https://www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A ..
https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 6 이상의 짝수는 두 개의 소수의 합으로 이뤄진다는 골드바흐의 추측을 구현하는 문제였다. 입력받은 숫자와, 두 개의 소수를 한 번에 출력해주면 되는 문제였다. 소수의 경우 에라토스테네스의 체를 사용했는데, 에라토스테네스 체를 구현하는 두 방식을 비교하여 조금 더 빠른 방식을 확인하였다. EOFError를 통해 끝까지 입력 받을 수 있게 했고, input 값이 0이라면 프로그..
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 역시 이 문제 또한 일반 반복문을 통하여 해결하였을 때에는 시간초과로 틀리게 된다... 유클리드 호제법이란 것을 활용해야 하는데, 유클리트 호제법이란 x, y의 최대공약수는 y, x % y 의 최대공약수와 같다는 원리를 이용한다. x % y 의 값이 0이 됐을 때의 y 값이 결국 최대 공약수가 된다. 이게 뭔소리냐면... 10 과 6 을 예시로 든다면, x y x%y 10 6 4 6 4 2 4 2 0 결국, 최대 공약수는 2 이다. 증명은 나무위키에 잘 나와 있다..
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 너무 많은 시간 초과들과의 싸움이 있었고... 더는 시간초과로 골머리 썩고 싶지 않은 마음에 애초에 에라토스테네스의 체를 활용하여 문제를 풀었다. 문제에서 주어진 시간이 넉넉하여 이렇게 풀지는 않아도 될 것 같다. 문제는 최대 1000 까지의 숫자가 최대로, 미리 모든 수를 1로 채운 배열을 하나 생성하였다, 이후 모든 수의 배수는 0으로 바꿔, 소수가 아님을 표시했다. 이후 입력받은 수를 위 만들어 둔 배열에서 확인하는 식으로 풀이하였다. code max_val ..
https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 독해가 가장 어려웠다... 다짜고짜 1이라니... 뭔 소리를 하는 지 헷갈렸는데, 그냥 숫자가 '111' 처럼 1로만 이뤄진 수를 찾는 문제였다. 파이썬의 EOFError 를 통해 입력 끝날 때까지 받을 수 있게 했고, temp라는 변수를 하나 설정하여 1을 계속 붙여주고, 그게 입력받은 n으로 나눠 떨어지는 지 확인하여 결과를 출력해주었다. 일종의 브루트포스를 활용하였다. 코드 while True: try: n = int(input()) temp = 1 ..
https://www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 문제의 난도는 높지 않으나, 시간 초과를 고려해야 하는 부분이 까다롭다. 첫 시도에 2중 반복문을 활용하였으나, 당연히 실패... 하여 얻은 인사이트는 만약 10을 기준으로 한다면, 1 은 총 10번 등장하고 ((10 / 1) * 1), 2 는 총 5번 등장하고 ((10 / 2) * 2), 3 은 총 3번 등장하고 ((10 / 3) * 3..