옹실이의 개발이야기

전체 글 48

[백준] 알고리즘 #10813 : 공 바꾸기 (Python)

문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다. 도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다. 공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 i j로 이루어져 있으며, i번 바구니와 j번 바구니에 들어있는 공을 교환한다는 뜻..

알고리즘 2023.05.05

[백준] 알고리즘 #10810 : 공 넣기 (Python)

문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 들어있지 않으며, 바구니에는 공을 1개만 넣을 수 있다. 도현이는 앞으로 M번 공을 넣으려고 한다. 도현이는 한 번 공을 넣을 때, 공을 넣을 바구니 범위를 정하고, 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣는다. 만약, 바구니에 공이 이미 있는 경우에는 들어있는 공을 빼고, 새로 공을 넣는다. 공을 넣을 바구니는 연속되어 있어야 한다. 공을 어떻게 넣을지가 주어졌을 때, M번 공을 넣은 이후에 각 바구니에 어떤 공이 들어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 10..

알고리즘 2023.05.05

[백준] 알고리즘 #2562 : 최댓값 (Python)

문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. 풀이 1. 값을 담을 배열을 만든다. 2. for문을 이용해 총 9개의 값을 입력받는다. 3. 입력값을 배열에 담는다. 4. max()함수를 이용해 배열의 최대값을 출력한다 5. index()함수를 이용해 배열 최대값의 in..

알고리즘 2023.05.01

[백준] 알고리즘 #10818 : 최소, 최대 (Python)

문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 풀이 1. 정수 N 입력받는다. 2. N개의 정수를 입력받아 배열(n_list)에 담는다 3. 배열(n_list)을 오름차순으로 정렬한다. 4. 배열의 0번째 값과 배열길이 - 1 값을 출력한다. (5개를 입력받으면, 배열의 0번째부터 순서대로 0, 1, 2, 3, 4 index에 담기므로 마지막 배열의 index..

알고리즘 2023.05.01

[백준] 알고리즘 #10952 : A+B - 5 (Python)

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다. 출력 각 테스트 케이스마다 A+B를 출력한다. 풀이 1. while문을 이용해 무한 루프 돌린다. 2. 두 수 A, B를 입력받는다. 3. A, B의 합이 0이 아니라면 두 수의 합을 출력한다. 4. A, B의 합이 0이라면 while문을 빠져나간다. 1 2 3 4 5 6 7 while(1): a, b = map(int, input().split()) if (a+b) != 0 : print(str(a+b)) else : br..

알고리즘 2023.04.30

[백준] 알고리즘 #2439 : 별 찍기 - 2 (Python)

문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 1. 별 찍을 갯수 N을 입력받는다. (N = 5) 2. 1부터 N+1 까지 for문 돌린다. (for문은 1부터 5 까지 돌게 된다) 3. ①첫번째 for문 - i : 1, N : 5 --> 공백(" ") 4개 + 별("*")1개 --> 공백(" ") X 4(5-1) + 별("*") X 1개(1) ②두번째 for문 - i : 2, N : 5 --> 공백(" ") 3개 + 별("*") 2개i --> 공백(" ") X 3개(5-2) + 별(..

알고리즘 2023.04.30

[백준] 알고리즘 #25314 : 코딩은 체육과목 입니다 (Python)

문제 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?” 혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장..

알고리즘 2023.04.30

[백준] 알고리즘 #2480 : 주사위 세개 (Python)

문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게..

알고리즘 2023.04.30

[백준] 알고리즘 #2525 : 오븐시계 (Python)

문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다. 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. 입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진..

알고리즘 2023.04.30

MySQL : Access denied for user '계정명'@'localhost' (using password: YES)

스프링에서 MySQL을 연동하고, 회원가입 기능을 만들다가 Access denied for user '계정명'@'localhost' (using password: YES) 에러가 났다 구글링했을때 주 원인은 계정의 비밀번호가 틀리다거나, 권한이 없다거나..... 라고 했는데, 나는 이 두가지 모두 해당되지 않았다ㅠㅠㅠㅠㅠ 헤매고 또 헤매다가 새로운 원인 찾아서 해결했다. 앞으로 또 일어날수 있는 오류인거같아 오늘 정리해보고자 한다. * 원인 * 1. 계정의 비밀번호가 틀린 경우 2. 계정에 권한이 없는 경우 3. 예전에 설치한 Bitnami WAMP Stack으로 인해 mysql이 중복실행된 경우 해결방법도 같이 알아보자 1. 계정의 비밀번호가 틀린 경우 이 경우 스프링 DB 연동시 설정한 비밀번호로 맞..

DataBase 2023.02.26