문제풀이_백준 [백준] 1012번 : 유기농 배추 (파이썬) 문제 나의 답안 접근 방법 bfs로 풀고자 deque를 사용하였다. 배추가 있는 곳은 1로, 없는 곳은 0으로 표기하고 탐색 후 1을 0으로 변경해준다. bfs이므로 y값을 기준으로 가로로 탐색하기 때문에 배추가 있는 곳은 arr[y][x]가 된다. 가로*세로가 m \times n m×n 범위 안ㄴ에 배추가 있다면 큐에 추가하고 0으로 변경해준다.... 문제풀이_백준문제풀이_백준 [백준] 1021번 : 회전하는 큐 (파이썬) 문제 나의 답안 접근 방법 1번(q.popleft()) 2번(q.append(q.popleft())) 3번q.appendleft(q.pop())을 구현해주면 된다. 모든 숫자를 찾을 때까지 반복해주어야 하고, 각 숫자에서 오른쪽(또는 왼쪽으로) 반복해서 이동해주어야 하므로 arr안에 총 3개의 while문이 들어가주어야 한다. 만약 원하는 숫자를 찾았다면 1번을 수행해주고 반복문을 종료한다.... 문제풀이_백준문제풀이_백준 [백준] 14659번 : 한조서열정리하고옴ㅋㅋ (파이썬) 문제 나의 답안 접근 방법 그리디 문제이다. 최댓값을 구하는 방식으로 가장 높은 봉우리를 찾으면 최댓값을 변경해주면 된다 오른쪽으로만 진행하므로 자신보다 큰 봉우리가 나오기 전까지 cnt를 1씩 늘려주면 된다.... 문제풀이_백준문제풀이_백준 [백준] 2667번 : 단지번호붙이기 (파이썬) 문제 나의 답안 접근 방법 dfs 문제이므로 재귀로 풀어주었다. dfs함수를 정의해 방문한 지점은 0으로 바꿔 다시 방문하지 않도록 해 단지 별 가구의 수를 세어준다. 방문했던 곳을 기준으로 상하좌우 탐색을 반복하고, 만약 집이 있다면 탐색을 지속하고 True를 반환한다. count 배열에는 단지를 저장하고, n*n에 대해 반복문으로 접근해주어 true값이면 count 배열에 가구의 수(cn... 문제풀이_백준문제풀이_백준 [백준] 2606번 : 바이러스 (파이썬) 문제 나의 답안 접근 방법 1번 컴퓨터부터 접근하므로 n+1개의 노드를 갖는 그래프를 생성한다. 이후 반복문을 통해 각 쌍을 연결하는 간선을 생성해준다. 방문한 노드는 1로 저장하고, 아닌 노드는 0으로 간주한다. dfs 함수에선 방문한 노드인지 판별해주고, 방문한 노드의 수를 반환해준다. 감염된 컴퓨터의 개수에선 1은 포함되지 않으므로 -1을 해준다.... 문제풀이_백준DFSDFS [백준] 10250번 : ACM 호텔 (파이썬) 문제 나의 답안 접근 방법 정문으로부터 걷는 거리가 가장 짧도록 방을 배정 직사각형, W 개의 방이 있는 H 층 건물 세로로 배치됨을 알 수 있다. 따라서 층수는 손님을 높이로 나눈 나머지이고, 방은 몇 번째 손님을 높이로 나눈 몫에 1을 더해주면 구할 수 있다. 만약 n번째 손님과 건물의 층이 일치하면 층이 0이 된다. 이때의 조건을 분류해주어야 한다. 출력에는 층에 100을 곱해주어야 정... 문제풀이_백준문제풀이_백준 [백준] 2805번 : 나무 자르기 (파이썬, pypy3) 문제 나의 최종 답안 접근 방법 이분탐색 문제이므로 중간 값(mid)을 구해주면 된다. 자른 나무의 합이(t) 가져가야 할 길이(m)보다 큰지, 작은지에 따라 조건문을 설정해 줘야 한다. 만약 크다면 절단기의 시작 위치를(start)를 높여 필요한 만큼만 가져간다. 작다면 절단기의 끝 위치(end)를 낮춰 가져가야 할 양을 늘려주어야 한다. 시간초과? 제출한 코드의 로직에는 큰 문제가 없다.... 문제풀이_백준문제풀이_백준 [백준] 1654번 : 랜선 자르기 (파이썬) 문제 나의 답안 접근 방법 문제와 거의 동일하다 랜선의 개수보다 많으면 랜선의 최소 길이를 증가시키고, 랜선의 수보다 작으면 최대 길이를 감소한다.... 문제풀이_백준문제풀이_백준 [백준] 2110번 : 공유기 설치 (파이썬, pypy) 문제 나의 첫번째 답안 최소 간격(mn)을 배열의 첫번째 값과 두번째 값의 차이로 하면 실제 최소 간격이 이와 다를 수 있으므로 옳지 않다. 따라서 최소 간격을 1로 설정해주고 순차적으로 늘려주어야 한다. 나의 최종 답안 접근 방법 이진 탐색 문제이다. 특정 간격을 기준으로 중간간격을 계산하여 공유기를 설치해야 한다. 공유기가 더 필요하면 중간간격을 줄이고, 공유기를 보다 적게 설치할 필요가... 문제풀이_백준문제풀이_백준 [백준] 1260번 : DFS와 BFS (파이썬) 문제 나의 답안 DFS와 BFS의 기본 구현을 묻는 문제이다. DFS는 깊이우선탐색으로 모든 노드를 방문하고, 스택이나 재귀함수로 구현한다. BFS는 너비우선탐색으로 두 노드 사이 최단 경로를 방문하며 큐로 구현한다.... 문제풀이_백준문제풀이_백준 [백준] 10815번 : 숫자 카드 (파이썬) 문제 나의 답안 접근 방법 문제와 동일하게 이진탐색 문제이나, 딕셔너리를 사용해 풀었다. 없으면 0 있으면 1을 저장해야 하므로 딕셔너리의 value를 0으로 초기화 해주고, arr_n에 있다면 1을 증가시켜준다. 출력할 때에는 딕셔너리에 value를 출력하기 위해 dic.values()를 사용하여 접근해준다.... 문제풀이_백준문제풀이_백준 [백준] 2920번 : 음계 (파이썬) 문제 나의 답안 접근 방법 음계를 입력받고, 리스트로 저장한다. 해당 리스트가 정렬되어 있는지, 아닌지에따라 출력 결과를 다르게 해준다.... 문제풀이_백준문제풀이_백준 [백준] 1946번 : 신입 사원 (파이썬) 문제 나의 첫번째 답안 시간 초과라는 결과가 나왔다. 반복문이 여러개이고, 입출력이 계속 일어나므로 sys.stdin.readline로 입출력 시간을 단축해주어야 한다. 나의 최종 답안 접근 방법 최댓값 구하는 방식과 비슷하게 접근할 수 있다.(그리디 문제) 1등은 무조건 뽑힌다. 따라서 각 분야의 1등을 기준으로 놓고 비교해주면 된다. 성적을 정렬 기준으로 놓고, 성적이 동일하면 면접순위가... 문제풀이_백준문제풀이_백준 [백준] 1003번 : 피보나치 함수 (파이썬) 문제 나의 답안 접근 방법 NUMBER ZERO ONE: fibonacci(1) 이 몇 번 호출되는가 ZERO: fibonacci(0) 이 몇 번 호출되는가 문제의 조건에서 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 0을 출력하고, 0을 리턴한다. fibonacci(2)는 fibonacci(1)과 fibonacci(0)의 결과를 얻고, 1을 리턴한다. f... 문제풀이_백준문제풀이_백준 [백준] 5086번 : 배수와 약수 (파이썬) 문제 나의 답안 0 0을 입력받을 때까지 반복해주고, 입력에 따른 조건을 설정해주면 된다.... 문제풀이_백준문제풀이_백준 [백준] 11726번 : 2×n 타일링 (파이썬) 문제 나의 답안 접근 방법 경우의 수는 n이 1일 때 1가지 n이 2일 때 2가지 n이 3일 때 3가지 n이 4일 때 5가지 이다. 위의 경우의 수에서 arr[n]=arr[n-1]+arr[n-2] 라는 점화식을 도출해 낼 수 있다.... 문제풀이_백준문제풀이_백준 [백준] 16953번 : A → B (파이썬) 문제 나의 답안 접근 방법 문제를 풀 때에는 a를 b로 만들기보단(bottom up) b를 a로 만들기(top-down)으로 접근해주어야 한다. 따라서 2를 곱한다. -> 2로 나눠지면 2로 나눔 1을 수의 가장 오른쪽에 추가한다. -> 1의 자리가 1이면 1을 제거 b를 a로 만들 수 없으면 -1을 해준다. b를 a로 만들 수 없는 경우는 1. a가 더 크거나 2. 2로 나누어지지 않고 일... 문제풀이_백준문제풀이_백준 [백준] 7983번 : 내일 할거야 (파이썬) 문제 나의 첫번째 답안(틀림) 다음 과제를 고려해주어야 한다고 생각해 두번째 반복문에서 1부터 n까지 반복하도록 하였다. 그러나 이렇게 하면 첫번째 과제를 고려하지 못하므로 반복문을 0부터 n까지로 설정해주어야 한다. 나의 답안 접근 방법 마감시간이 늦은 순서대로 나중에 해도 됨 과제의 마감일(e)이 시작해야 되는 날보다 늦는다면 다른 과제를 수행하지 못하므로 시작하는 날(time)에서 과제... 문제풀이_백준문제풀이_백준 [백준] 1010번 : 다리 놓기 (파이썬) 문제 나의 답안 접근 방법 이다 서쪽 사이트의 개수만큼 다리를 만들어야 하므로 mCn mCn으로 접근할 수 있다. 재귀함수를 이용해서 풀어주었다.... 문제풀이_백준문제풀이_백준 [백준] 10818번 : 최소, 최대 문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다... 문제풀이_백준문제풀이_백준 [백준] 10809 : 알파벳 찾기 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음... 문제풀이_백준문제풀이_백준 [백준] 2675번 : 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*... 문제풀이_백준문제풀이_백준 [백준] 2775번 : 부녀회장이 될테야 문제 나의 첫번째 답안 자신의 층을 기준으로 '아래층의 1호부터 n호까지 사람들의 수를 합한 만큼의 사람을 데려와야 한다'라는 조건에 재귀함수를 생각했다. 따라서 함수 floor를 선언해 테스트케이스 수 만큼 반복 호출하도록 하였다. 그러나 백준에서는 재귀함수 사용 시 시간초과가 나는 경우가 많다고 한다.. 따라서 해당 코드를 재귀함수를 사용하지 않는 방식으로 수정하고자 하였다. 나의 두번째... 문제풀이_백준문제풀이_백준 [백준] 2609번 : 최대공약수와 최소공배수(파이썬) 문제 나의 답안 a와 b를 입력 받는다. 약수를 계산하는 cal 함수를 정의해준다. 반복문을 통해 인자로 들어온 숫자의 약수를 구해주고, 배열에 저장해 배열을 리턴해준다. gon은 a의 약수와 b의 약수 중 같은 값을 갖는 것을 반환해준다. 공약수란 공통된 약수이다. gon 중 최대인 값이 최대공약수이다. 즉, max(gon) 최소공배수는 a와 b를 곱한 값을 최대공약수로 나눈 값을 의미한다... 문제풀이_백준문제풀이_백준 [백준] 10773번 : 제로 (파이썬) 문제 나의 답안 스택 문제이다. 스택은 FILO(First In Last Out) 구조이다. pop을 통해 가장 마지막 값을 뺄 수 있으며, push를 통해 값을 추가할 수 있다. 1. 반복문을 통해 k개수만큼의 입력값을 받는다. 2. 만약 n이 0이면 스택에서 마지막 인자를 제거한다.(pop) 3. 아니라면 스택에 append메소드를 이용해 입력받은 값을 추가해준다.(push)... 문제풀이_백준문제풀이_백준 [백준] 10828번 : 스택 (파이썬) 문제 나의 첫번째 답안 채점결과 시간초과가 떴다. 시간초과를 피하려고 pop과 top에서 empty를 호출하는 것도 피했는데 입출력 속도를 고려하지 못했다. 나의 최종 답안 코드는 단순하다. 각 기능 별로 함수를 정의해 사용해주면된다. 1. push함수는 함수의 인자로 추가할 값을 받는다. 해당 값을 스택에 append해준다. 2. pop함수는 스택이 비어있지 않으면 가장 위의 값을 스택에서... 문제풀이_백준문제풀이_백준 [백준] 1929번 : 소수 구하기 (파이썬) 문제 나의 답안 에라토스테네스의 체(소수 구하기) 문제이다. 1은 소수가 아니므로 제외해준다. 반복문을 돌린다. 범위는 2부터 int(i**0.5)+1까지이다. 특정 수의 제곱근을 구해, 그 제곱근까지의 약수를 구하면 해당 약수를 포함하는 수를 모두 제거할 수 있다(소수가 아니기에). 이렇기 때문에 범위를 위와같이 설정해주었다. 예를들어, i=12에서 12의 약수는 1 2 3 4 6 12 i... 문제풀이_백준문제풀이_백준
[백준] 1012번 : 유기농 배추 (파이썬) 문제 나의 답안 접근 방법 bfs로 풀고자 deque를 사용하였다. 배추가 있는 곳은 1로, 없는 곳은 0으로 표기하고 탐색 후 1을 0으로 변경해준다. bfs이므로 y값을 기준으로 가로로 탐색하기 때문에 배추가 있는 곳은 arr[y][x]가 된다. 가로*세로가 m \times n m×n 범위 안ㄴ에 배추가 있다면 큐에 추가하고 0으로 변경해준다.... 문제풀이_백준문제풀이_백준 [백준] 1021번 : 회전하는 큐 (파이썬) 문제 나의 답안 접근 방법 1번(q.popleft()) 2번(q.append(q.popleft())) 3번q.appendleft(q.pop())을 구현해주면 된다. 모든 숫자를 찾을 때까지 반복해주어야 하고, 각 숫자에서 오른쪽(또는 왼쪽으로) 반복해서 이동해주어야 하므로 arr안에 총 3개의 while문이 들어가주어야 한다. 만약 원하는 숫자를 찾았다면 1번을 수행해주고 반복문을 종료한다.... 문제풀이_백준문제풀이_백준 [백준] 14659번 : 한조서열정리하고옴ㅋㅋ (파이썬) 문제 나의 답안 접근 방법 그리디 문제이다. 최댓값을 구하는 방식으로 가장 높은 봉우리를 찾으면 최댓값을 변경해주면 된다 오른쪽으로만 진행하므로 자신보다 큰 봉우리가 나오기 전까지 cnt를 1씩 늘려주면 된다.... 문제풀이_백준문제풀이_백준 [백준] 2667번 : 단지번호붙이기 (파이썬) 문제 나의 답안 접근 방법 dfs 문제이므로 재귀로 풀어주었다. dfs함수를 정의해 방문한 지점은 0으로 바꿔 다시 방문하지 않도록 해 단지 별 가구의 수를 세어준다. 방문했던 곳을 기준으로 상하좌우 탐색을 반복하고, 만약 집이 있다면 탐색을 지속하고 True를 반환한다. count 배열에는 단지를 저장하고, n*n에 대해 반복문으로 접근해주어 true값이면 count 배열에 가구의 수(cn... 문제풀이_백준문제풀이_백준 [백준] 2606번 : 바이러스 (파이썬) 문제 나의 답안 접근 방법 1번 컴퓨터부터 접근하므로 n+1개의 노드를 갖는 그래프를 생성한다. 이후 반복문을 통해 각 쌍을 연결하는 간선을 생성해준다. 방문한 노드는 1로 저장하고, 아닌 노드는 0으로 간주한다. dfs 함수에선 방문한 노드인지 판별해주고, 방문한 노드의 수를 반환해준다. 감염된 컴퓨터의 개수에선 1은 포함되지 않으므로 -1을 해준다.... 문제풀이_백준DFSDFS [백준] 10250번 : ACM 호텔 (파이썬) 문제 나의 답안 접근 방법 정문으로부터 걷는 거리가 가장 짧도록 방을 배정 직사각형, W 개의 방이 있는 H 층 건물 세로로 배치됨을 알 수 있다. 따라서 층수는 손님을 높이로 나눈 나머지이고, 방은 몇 번째 손님을 높이로 나눈 몫에 1을 더해주면 구할 수 있다. 만약 n번째 손님과 건물의 층이 일치하면 층이 0이 된다. 이때의 조건을 분류해주어야 한다. 출력에는 층에 100을 곱해주어야 정... 문제풀이_백준문제풀이_백준 [백준] 2805번 : 나무 자르기 (파이썬, pypy3) 문제 나의 최종 답안 접근 방법 이분탐색 문제이므로 중간 값(mid)을 구해주면 된다. 자른 나무의 합이(t) 가져가야 할 길이(m)보다 큰지, 작은지에 따라 조건문을 설정해 줘야 한다. 만약 크다면 절단기의 시작 위치를(start)를 높여 필요한 만큼만 가져간다. 작다면 절단기의 끝 위치(end)를 낮춰 가져가야 할 양을 늘려주어야 한다. 시간초과? 제출한 코드의 로직에는 큰 문제가 없다.... 문제풀이_백준문제풀이_백준 [백준] 1654번 : 랜선 자르기 (파이썬) 문제 나의 답안 접근 방법 문제와 거의 동일하다 랜선의 개수보다 많으면 랜선의 최소 길이를 증가시키고, 랜선의 수보다 작으면 최대 길이를 감소한다.... 문제풀이_백준문제풀이_백준 [백준] 2110번 : 공유기 설치 (파이썬, pypy) 문제 나의 첫번째 답안 최소 간격(mn)을 배열의 첫번째 값과 두번째 값의 차이로 하면 실제 최소 간격이 이와 다를 수 있으므로 옳지 않다. 따라서 최소 간격을 1로 설정해주고 순차적으로 늘려주어야 한다. 나의 최종 답안 접근 방법 이진 탐색 문제이다. 특정 간격을 기준으로 중간간격을 계산하여 공유기를 설치해야 한다. 공유기가 더 필요하면 중간간격을 줄이고, 공유기를 보다 적게 설치할 필요가... 문제풀이_백준문제풀이_백준 [백준] 1260번 : DFS와 BFS (파이썬) 문제 나의 답안 DFS와 BFS의 기본 구현을 묻는 문제이다. DFS는 깊이우선탐색으로 모든 노드를 방문하고, 스택이나 재귀함수로 구현한다. BFS는 너비우선탐색으로 두 노드 사이 최단 경로를 방문하며 큐로 구현한다.... 문제풀이_백준문제풀이_백준 [백준] 10815번 : 숫자 카드 (파이썬) 문제 나의 답안 접근 방법 문제와 동일하게 이진탐색 문제이나, 딕셔너리를 사용해 풀었다. 없으면 0 있으면 1을 저장해야 하므로 딕셔너리의 value를 0으로 초기화 해주고, arr_n에 있다면 1을 증가시켜준다. 출력할 때에는 딕셔너리에 value를 출력하기 위해 dic.values()를 사용하여 접근해준다.... 문제풀이_백준문제풀이_백준 [백준] 2920번 : 음계 (파이썬) 문제 나의 답안 접근 방법 음계를 입력받고, 리스트로 저장한다. 해당 리스트가 정렬되어 있는지, 아닌지에따라 출력 결과를 다르게 해준다.... 문제풀이_백준문제풀이_백준 [백준] 1946번 : 신입 사원 (파이썬) 문제 나의 첫번째 답안 시간 초과라는 결과가 나왔다. 반복문이 여러개이고, 입출력이 계속 일어나므로 sys.stdin.readline로 입출력 시간을 단축해주어야 한다. 나의 최종 답안 접근 방법 최댓값 구하는 방식과 비슷하게 접근할 수 있다.(그리디 문제) 1등은 무조건 뽑힌다. 따라서 각 분야의 1등을 기준으로 놓고 비교해주면 된다. 성적을 정렬 기준으로 놓고, 성적이 동일하면 면접순위가... 문제풀이_백준문제풀이_백준 [백준] 1003번 : 피보나치 함수 (파이썬) 문제 나의 답안 접근 방법 NUMBER ZERO ONE: fibonacci(1) 이 몇 번 호출되는가 ZERO: fibonacci(0) 이 몇 번 호출되는가 문제의 조건에서 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 0을 출력하고, 0을 리턴한다. fibonacci(2)는 fibonacci(1)과 fibonacci(0)의 결과를 얻고, 1을 리턴한다. f... 문제풀이_백준문제풀이_백준 [백준] 5086번 : 배수와 약수 (파이썬) 문제 나의 답안 0 0을 입력받을 때까지 반복해주고, 입력에 따른 조건을 설정해주면 된다.... 문제풀이_백준문제풀이_백준 [백준] 11726번 : 2×n 타일링 (파이썬) 문제 나의 답안 접근 방법 경우의 수는 n이 1일 때 1가지 n이 2일 때 2가지 n이 3일 때 3가지 n이 4일 때 5가지 이다. 위의 경우의 수에서 arr[n]=arr[n-1]+arr[n-2] 라는 점화식을 도출해 낼 수 있다.... 문제풀이_백준문제풀이_백준 [백준] 16953번 : A → B (파이썬) 문제 나의 답안 접근 방법 문제를 풀 때에는 a를 b로 만들기보단(bottom up) b를 a로 만들기(top-down)으로 접근해주어야 한다. 따라서 2를 곱한다. -> 2로 나눠지면 2로 나눔 1을 수의 가장 오른쪽에 추가한다. -> 1의 자리가 1이면 1을 제거 b를 a로 만들 수 없으면 -1을 해준다. b를 a로 만들 수 없는 경우는 1. a가 더 크거나 2. 2로 나누어지지 않고 일... 문제풀이_백준문제풀이_백준 [백준] 7983번 : 내일 할거야 (파이썬) 문제 나의 첫번째 답안(틀림) 다음 과제를 고려해주어야 한다고 생각해 두번째 반복문에서 1부터 n까지 반복하도록 하였다. 그러나 이렇게 하면 첫번째 과제를 고려하지 못하므로 반복문을 0부터 n까지로 설정해주어야 한다. 나의 답안 접근 방법 마감시간이 늦은 순서대로 나중에 해도 됨 과제의 마감일(e)이 시작해야 되는 날보다 늦는다면 다른 과제를 수행하지 못하므로 시작하는 날(time)에서 과제... 문제풀이_백준문제풀이_백준 [백준] 1010번 : 다리 놓기 (파이썬) 문제 나의 답안 접근 방법 이다 서쪽 사이트의 개수만큼 다리를 만들어야 하므로 mCn mCn으로 접근할 수 있다. 재귀함수를 이용해서 풀어주었다.... 문제풀이_백준문제풀이_백준 [백준] 10818번 : 최소, 최대 문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다... 문제풀이_백준문제풀이_백준 [백준] 10809 : 알파벳 찾기 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음... 문제풀이_백준문제풀이_백준 [백준] 2675번 : 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*... 문제풀이_백준문제풀이_백준 [백준] 2775번 : 부녀회장이 될테야 문제 나의 첫번째 답안 자신의 층을 기준으로 '아래층의 1호부터 n호까지 사람들의 수를 합한 만큼의 사람을 데려와야 한다'라는 조건에 재귀함수를 생각했다. 따라서 함수 floor를 선언해 테스트케이스 수 만큼 반복 호출하도록 하였다. 그러나 백준에서는 재귀함수 사용 시 시간초과가 나는 경우가 많다고 한다.. 따라서 해당 코드를 재귀함수를 사용하지 않는 방식으로 수정하고자 하였다. 나의 두번째... 문제풀이_백준문제풀이_백준 [백준] 2609번 : 최대공약수와 최소공배수(파이썬) 문제 나의 답안 a와 b를 입력 받는다. 약수를 계산하는 cal 함수를 정의해준다. 반복문을 통해 인자로 들어온 숫자의 약수를 구해주고, 배열에 저장해 배열을 리턴해준다. gon은 a의 약수와 b의 약수 중 같은 값을 갖는 것을 반환해준다. 공약수란 공통된 약수이다. gon 중 최대인 값이 최대공약수이다. 즉, max(gon) 최소공배수는 a와 b를 곱한 값을 최대공약수로 나눈 값을 의미한다... 문제풀이_백준문제풀이_백준 [백준] 10773번 : 제로 (파이썬) 문제 나의 답안 스택 문제이다. 스택은 FILO(First In Last Out) 구조이다. pop을 통해 가장 마지막 값을 뺄 수 있으며, push를 통해 값을 추가할 수 있다. 1. 반복문을 통해 k개수만큼의 입력값을 받는다. 2. 만약 n이 0이면 스택에서 마지막 인자를 제거한다.(pop) 3. 아니라면 스택에 append메소드를 이용해 입력받은 값을 추가해준다.(push)... 문제풀이_백준문제풀이_백준 [백준] 10828번 : 스택 (파이썬) 문제 나의 첫번째 답안 채점결과 시간초과가 떴다. 시간초과를 피하려고 pop과 top에서 empty를 호출하는 것도 피했는데 입출력 속도를 고려하지 못했다. 나의 최종 답안 코드는 단순하다. 각 기능 별로 함수를 정의해 사용해주면된다. 1. push함수는 함수의 인자로 추가할 값을 받는다. 해당 값을 스택에 append해준다. 2. pop함수는 스택이 비어있지 않으면 가장 위의 값을 스택에서... 문제풀이_백준문제풀이_백준 [백준] 1929번 : 소수 구하기 (파이썬) 문제 나의 답안 에라토스테네스의 체(소수 구하기) 문제이다. 1은 소수가 아니므로 제외해준다. 반복문을 돌린다. 범위는 2부터 int(i**0.5)+1까지이다. 특정 수의 제곱근을 구해, 그 제곱근까지의 약수를 구하면 해당 약수를 포함하는 수를 모두 제거할 수 있다(소수가 아니기에). 이렇기 때문에 범위를 위와같이 설정해주었다. 예를들어, i=12에서 12의 약수는 1 2 3 4 6 12 i... 문제풀이_백준문제풀이_백준