728x90

전체 글 374

[2024.11.08] 오늘의 일기📝

전날 저녁과 새벽에 계속된 문의하기 알림 뜸 출근하고 문의하기 목록 확인 서버 한 개에서 제대로 동작을 하지 않음 (특정 서비스) 전날 해당 서비스는 반영하지 않음 1주일 전 동일 문제로 해결한 적 있어 해당 방법 사용 Tobe 폴더 사용하지 않아 제거 후 재기동함 오류 발생하고 서버 마비가 발생함 알고 보니 Tobe 쪽으로 호출하는 부분이 있음 Tobe 살리고 다시 재기동하니 정상 동작함 Tobe 로그 살펴보니 blob 부분이 Tobe로 호출됨 (Blob은 이미지 관련된 부분임) Tobe 호출하는 포트 전부 확인 해당 포트 변경 후 Tobe 닫으니 이미지 호출 안 됨 Blob 관련해서 조치해야 함 온종일 확인만 하다가 퇴근할 것 같음 그래도 칼퇴는 해야함 -오늘의 일기 끝-

이모저모/일상 2024.11.08

[백준/BOJ] gold3 - 2812번 크게 만들기

▶2812 - 크게 만들기 ▶문제N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. ▶입력첫째 줄에 N과 K가 주어진다. (1 ≤ K 둘째 줄에 N자리 숫자가 주어진다. 이 수는 0으로 시작하지 않는다. ▶출력입력으로 주어진 숫자에서 K개를 지웠을 때 얻을 수 있는 가장 큰 수를 출력한다.▶풀이Stack을 사용하는 문제로 지난번에 풀었던 17298 - 오큰수와 거의 비슷한 문제이다.문제풀이 방법 자체가 동일하다고 생각해도 무방하다.2024.10.05 - [BOJ Code/Gold] - [백준/BOJ] gold4 - 17298번 오큰수 [백준/BOJ] gold4 - 17298번 오큰수▶17298 - 오큰 ▶문제크기가 N인 수열 A = A1, A..

BOJ Code/Gold 2024.10.05

[백준/BOJ] gold4 - 17298번 오큰수

▶17298 - 오큰 ▶문제크기가 N인 수열 A = A1, A2,..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다.예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. ▶입력첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2,..., AN (1 ≤ ..

BOJ Code/Gold 2024.10.05

[백준/BOJ] gold5 - 20444번 색종이와 가위

▶20444 - 색종이와 가위 ▶문제오늘도 역시 준성이는 어김없이 색종이와 쿼리를 푸는 데 실패하였다!!색종이에 열등감을 느낀 준성이는 가위로 눈에 보이는 색종이를 모두 잘라 버리려고 한다!!색종이를 자를 때는 다음과 같은 규칙을 따른다.색종이는 직사각형이며, 색종이를 자를 때는 한 변에 평행하게 자른다.자르기 시작했으면, 경로 상의 모든 색종이를 자를 때까지 멈추지 않는다.이미 자른 곳을 또 자를 수 없다.분노에 찬 가위질을 하던 준성이는 갑자기 하나의 색종이를 정확히 n번의 가위질로 k개의 색종이 조각으로 만들 수 있는지 궁금해졌다.궁금하지만 화가 나서 코딩에 집중할 수 없는 준성이 대신 코드를 작성해 주도록 하자. ▶입력첫 줄에 정수 n, k가 주어진다. (1 ≤ n ≤ 2^31-1, 1 ≤ k ≤..

BOJ Code/Gold 2024.09.21

[백준/BOJ] bronze1 - 15786 Send me the money

▶15786 - Send me the money ▶문제석규는 해외로 저렴하고 간편하게 송금할 수 있는 센트비 서비스를 이용하여 CTP 왕국에 놀러간 형동이에게 돈을 보내주려고 한다. 하지만 안타깝게도 석규는 센트비 비밀번호를 까먹어버렸고 돈을 보내주지 못한다. 다행히도 석규는 평소에 포스트잇에 비밀번호를 적어놓는다. 비밀번호는 알파벳 대문자로만 구성이 되어있으며 석규는 이 중 일부를 정확히 기억하고 있다.석규는 포스트잇을 확인하여 비밀번호를 입력하려고 했지만, 포스트잇은 여러 장 존재했고 이 중 어떤 포스트잇이 센트비 비밀번호가 적힌 포스트잇인지 모른다.석규는 센트비 비밀번호의 알파벳 중 등장하는 순서대로 N글자만 정확히 기억하고 있으며 포스트잇 중에 이 순서를 갖는 포스트잇이 센트비 비밀번호일 가능성이..

[백준/BOJ] silver2 - 24445번 알고리즘 수업 - 너비 우선 탐색 2 (Python)

▶24445 - 알고리즘 수업 - 너비 우선 탐색 2 ▶문제오늘도 서준이는 너비 우선 탐색(BFS) 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해 보자.N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다. 정점 번호는 1번부터 N번이고 모든 간선의 가중치는 1이다. 정점 R에서 시작하여 너비 우선 탐색으로 노드를 방문할 경우 노드의 방문 순서를 출력하자.너비 우선 탐색 의사 코드는 다음과 같다. 인접 정점은 내림차순으로 방문한다.bfs(V, E, R) { # V : 정점 집합, E : 간선 집합, R : 시작 정점  for each v ∈ V - {R}  visited[v]  ▶입력첫째 줄에 정점의 수..

[백준/BOJ] silver5 - 25193번 곰곰이의 식단 관리 (Python)

▶25193 - 곰곰이의 식단 관리▶문제곰곰이는 치킨을 좋아한다. 그러다 보니 매 끼니에 치킨을 먹고 있다. 당신은 곰곰이의 트레이너로서 곰곰이의 식단을 관리해 주기로 했다.곰곰이가 N일간 먹어야 할 음식들의 리스트가 주어졌을 때, 리스트의 순서를 원하는 대로 조정하여 곰곰이가 연속으로 치킨을 먹는 날의 최댓값을 가장 작게 만들려고 한다.곰곰이의 건강을 위해 위와 같은 프로그램을 작성해 보자. ▶입력첫 번째 줄에 식단을 정할 일수 N(1≤N≤100000)이 주어진다.두 번째 줄에 음식의 리스트인 길이 N의 문자열 S가 주어진다. 문자열은 영어 대문자로만 이루어져 있다. Si가 C인 경우, i번째 음식이 치킨이며, 그 외의 경우에는 다른 음식이다. ▶출력첫째 줄에 모든 집을 칠하는 비용의 최솟값을 출력한다..

[백준/BOJ] gold4 - 17404번 RGB거리 2 (Python)

▶17404 - RGB거리 2 ▶문제RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자.1번 집의 색은 2번, N번 집의 색과 같지 않아야 한다.N번 집의 색은 N-1번, 1번 집의 색과 같지 않아야 한다.i(2 ≤ i ≤ N-1) 번 집의 색은 i-1, i+1번 집의 색과 같지 않아야 한다. ▶입력첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다..

BOJ Code/Gold 2024.08.31

[백준/BOJ] silver2 - 31910번 이진수 격차 (Python)

▶31910 - 이진수 격차 ▶문제각 칸에 0 또는 1이 적혀 있는 N×N 격자가 있다. 인선이는 1행 1열에서 출발해 N행 N열까지 이동하는데, 오른쪽(열 번호가 증가하는 방향) 또는 아래(행 번호가 증가하는 방향)로만 한 칸씩 이동할 수 있다. 인선이는 어떤 칸에 방문할 때마다 그 칸에 적힌 문자를 자신이 갖고 있는 문자열의 뒷부분에 덧붙인다. 예를 들어, 주어진 그림에서 인선이가 1행 1열에서 출발하여 순서대로 오른쪽, 아래, 오른쪽으로 한 칸씩 이동한다면 인선이가 가진 문자열은 1101이다. N행 N열에 도착하면 인선이는 자신이 갖고 있는 문자열을 이진수로 해석한 값 M을 계산한다. 예를 들어, 인선이가 가진 문자열이 1101일 경우 M = 13이다. 인선이가 계산하게 될 M의 최댓값을 구하시오...

[백준/BOJ] bronze5 - 31450번 Everyone is winner (Python)

▶31450 - Everyone is winner ▶문제Your friend is a kindergarten teacher. Since the Olympic Games in Paris are approaching, he wants to teach the kids about different aspects of sports competitions. As part of this idea, he plans to have one day when kids receive medals for their behaviour in kindergarten. For example, he would give out a medal for the kid who shares their toys the most, or for the ..

[백준/BOJ] gold1 - 11505번 구간 곱 구하기 (Python)

▶11505 - 구간 곱 구하 ▶문제 어떤 N개의 수가 주어져 있다. 그런데 중간에 수의 변경이 빈번히 일어나고 그 중간에 어떤 부분의 곱을 구하려 한다. 만약에 1, 2, 3, 4, 5라는 수가 있고, 3번째 수를 6으로 바꾸고 2번째부터 5번째까지 곱을 구하라고 한다면 240을 출력하면 되는 것이다. 그리고 그 상태에서 다섯 번째 수를 2로 바꾸고 3번째부터 5번째까지 곱을 구하라고 한다면 48이 될 것이다. ▶입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000)가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 곱을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄까지 N개의 수가 주어진다. 그리고 N+2번..

BOJ Code/Gold 2023.10.01

[백준/BOJ] gold1 - 10868번 최솟값 (Python)

▶10868 - 최솟값 ▶문제 N(1 ≤ N ≤ 100,000) 개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000) 개 주어졌을 때는 어려운 문제가 된다. 이 문제를 해결해 보자. 여기서 a번째라는 것은 입력되는 순서로 a번째라는 이야기이다. 예를 들어 a=1, b=3이라면 입력된 순서대로 1번, 2번, 3번 정수 중에서 최솟값을 찾아야 한다. 각각의 정수들은 1 이상 1,000,000,000 이하의 값을 갖는다. ▶입력 첫째 줄에 N, M이 주어진다. 다음 N개의 줄에는 N개의 정수가 주어진다. 다음 M개의 줄에는 a, b의 쌍이 주어진다. ▶출력 M개의 줄에 입력받은 순서..

BOJ Code/Gold 2023.09.30

[백준/BOJ] gold1 - 2357번 최솟값과 최댓값 (Python)

▶2357 - 최솟값과 최댓값 ▶문제 N(1 ≤ N ≤ 100,000) 개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000) 개 주어졌을 때는 어려운 문제가 된다. 이 문제를 해결해 보자. 여기서 a번째라는 것은 입력되는 순서로 a번째라는 이야기이다. 예를 들어 a=1, b=3이라면 입력된 순서대로 1번, 2번, 3번 정수 중에서 최소, 최댓값을 찾아야 한다. 각각의 정수들은 1 이상 1,000,000,000 이하의 값을 갖는다. ▶입력 첫째 줄에 N, M이 주어진다. 다음 N개의 줄에는 N개의 정수가 주어진다. 다음 M개의 줄에는 a, b의 쌍이 주어진다..

BOJ Code/Gold 2023.09.28

[백준/BOJ] gold1 - 2042번 구간 합 구하기 (Python)

▶2042 - 구간 합 구하기 ▶문제 어떤 N개의 수가 주어져 있다. 그런데 중간에 수의 변경이 빈번히 일어나고 그 중간에 어떤 부분의 합을 구하려 한다. 만약에 1,2,3,4,5라는 수가 있고, 3번째 수를 6으로 바꾸고 2번째부터 5번째까지 합을 구하라고 한다면 17을 출력하면 되는 것이다. 그리고 그 상태에서 다섯 번째 수를 2로 바꾸고 3번째부터 5번째까지 합을 구하라고 한다면 12가 될 것이다. ▶입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄까지 N개의 수가 주어진다. 그리고 N+2번째 줄부..

BOJ Code/Gold 2023.09.27

[백준/BOJ] gold3 - 14427번 수열과 쿼리 15 (Python)

▶14427 - 수열과 쿼리 15 ▶문제 길이가 N인 수열 A1, A2,..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. 1 i v : Ai를 v로 바꾼다. (1 ≤ i ≤ N, 1 ≤ v ≤ 109) 2 : 수열에서 크기가 가장 작은 값의 인덱스를 출력한다. 그러한 값이 여러 개인 경우에는 인덱스가 작은 것을 출력한다. 수열의 인덱스는 1부터 시작한다. ▶입력 첫째 줄에 수열의 크기 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2,..., AN이 주어진다. (1 ≤ Ai ≤ 109) 셋째 줄에는 쿼리의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 쿼리가 주어진다. ▶출력 2번 쿼리에 대해서 정답을 한 줄에 하나씩 ..

BOJ Code/Gold 2023.09.27

[Git] branch 변경하지 않고 작업했을 때

Git으로 협업하던 중 branch를 변경하지 않고 작업해 이를 처리하는 과정이 필요했다. ▶임시 저장소(스택) 저장 git stash 해당 브런치에서 작업한 내용을 임시저장소로 옮겨야 한다. git checkout {branch_name} git stash list 그다음 원하는 브런치로 이동으로 하고, stash list를 통해서 스택 히스토리를 확인한다. 이전 브런치에서 작업했던 내용이 스택에 저장되어 있을 것이다. git stash apply {stack_id} 원하는 스택을 stash apply를 통해 적용시켜 주면 된다. stack_id를 입력하지 않고 git stash apply를 하면 가장 최근 내용을 가져온다. 그렇기 때문에 스택 안에 여러 내용이 저장되어 있다면 stack_id를 사용해..

[백준/BOJ] bronze3 - 9063번 대지 (Python)

▶9063 - 대지 ▶문제 임 씨는 1950 년 한국전쟁으로 많은 손해를 본 사람들 중 하나다. 전쟁 통에 손해보지 않은 사람이 어디 있을까 만은 그는 6.25 가 일어나기 전만 해도 충청도 지방에 넓은 대지를 소유한 큰 부자였다. 전쟁이 나자 임 씨는 땅문서와 값나가는 것들만 챙겨서 일본으로 피난을 가지만 피난 중에 그만 땅문서를 잃어버리고 만다. 전쟁이 끝난 후에 임 씨의 땅은 이미 다른 사람들의 논밭이 되어 있었고, 임 씨는 땅을 되찾으려 했지만 문서가 없으니 생떼 쓰는 것과 다를 바 없었다. 이러다가 임 씨는 길바닥에 나앉게 생겼다. 이때, 임 씨에게 좋은 생각이 떠올랐으니 바로 자신이 습관처럼 땅 깊숙이 뭔가 표식을 해놓았던 사실이다. 임 씨는 한적할 때마다 자신의 논밭을 거닐다가 땅속 깊은 곳..

[백준/BOJ] platinum5 - 13560번 축구 게임 (Python)

▶13560 - 축구 게임 ▶문제 축구는 지구에서 가장 인기 있는 스포츠 중의 하나입니다. n 팀으로 이루어진 축구 리그가 있습니다. 하나의 팀은 다른 모든 팀과 정확히 한 번씩만 경기를 합니다. 그러므로, 각 팀은 n - 1번의 경기를 하게 됩니다. 무승부는 승부차기를 하기 때문에 없습니다. 한 경기 후에 이긴 한 팀은 1 점을 얻게 되고, 진 팀은 0 점을 얻게 됩니다. 베스트 팀 선정을 위해 경기 일정이 끝난 후에 각 팀은 리그 사무소에 획득한 점수를 보고하게 됩니다. 리그 사무소는 각 팀이 보고한 점수가 실수가 없는지 확실히 해두고 싶습니다. 즉, 보고한 점수가 유효한지 아닌지 알고 싶은 것이고, 이 말은 리그 룰에 따르는 경우 이 점수들을 각 팀에 할당하는 것이 가능해야 합니다. 주어진 n 개의..

BOJ Code/Platinum 2023.08.02

[백준/BOJ] bronze2 - 13458번 시험 감독 (Python)

▶13458 - 시험 감독 ▶문제 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다. 각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다. 각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오. ▶입력 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 ..

728x90