본문 바로가기

분류 전체보기

(28)
삽입정렬, 선택정렬, 버블정렬 버블정렬 인접한 숫자끼리 대소 비교를 통해 큰 수를 뒤로 이동시키는 방식의 정렬 # 시간복잡도 n-1, n-2 .... 1까지 총 n(n-1)/2번의 결과가 나오므로 O(n^2)의 시간복잡도를 가지게 된다. # 공간복잡도 다른 공간을 활용하지 않고 현재 데이터 내에서 자리를 switch하는 것이기에 O(n)의 공간복잡도를 가지게 된다. # Code 1. python 1 2 3 4 5 6 def bubbleSort(data): for i in range(len(data)-1): for j in range(len(data)-1-i): if data[j] > data[j+1]: data[j], data[j+1] = data[j+1], data[j] return data Colored by Color Scrip..
[SWEA] D4 3349 최솟값으로 이동하기 문제 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWDTN0cKr1oDFAWD 문제 한국의 모든 구획이 새롭게 재편성되었다. 정확히 말하면 W개의 남북방향 도로와 H개의 동서방향 도로가 모두 일정한 간격으로 늘어서서 교차하는 바둑판 모양으로 만들었다. 남북방향 도로는 가장 서쪽에 있는 것으로부터 시작해서 동쪽으로 가면서 차례대로 1, 2, …, W로 번호가 매겨져 있고, 동서방향 도로는 가장 남쪽에 있는 것으로부터 시작해서 북쪽으로 가면서 차례대로 1, 2, …, H로 번호가 매겨져 있다. i번 남북방향 도로와 j번 동서방향 도로가 교차하는 지점을 (i, j)로 나타낸다. 이렇게 도로를 만들고 나면 아래와..
[모의 SW 역량 테스트] 2115 벌꿀 채취 (Python) 문제 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V4A46AdIDFAWu&categoryId=AV5V4A46AdIDFAWu&categoryType=CODE 문제 N*N 개의 벌통이 정사각형 모양으로 배치되어 있다. 각 칸의 숫자는 각각의 벌통에 있는 꿀의 양을 나타내며, 꿀의 양은 서로 다를 수 있다. 아래 [Fig. 1]은 N=4인 16개의 벌통을 나타낸다. 각 벌통에 있는 꿀의 양이 주어졌을 때, 다음과 같은 과정으로 벌꿀을 채취하여 최대한 많은 수익을 얻으려고 한다. ① 두 명의 일꾼이 있다. 꿀을 채취할 수 있는 벌통의 수 M이 주어질 때, 각각의 일꾼은 가로로 연속되도록 M개의 벌통을 선택하..
[SWEA] D4 1238 Contact (Python) 문제 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15B1cKAKwCFAYD&categoryId=AV15B1cKAKwCFAYD&categoryType=CODE 문제 비상연락망과 연락을 시작하는 당번에 대한 정보가 주어질 때, 가장 나중에 연락을 받게 되는 사람 중 번호가 가장 큰 사람을 구하는 함수를 작성하시오. [예시] 아래는 비상연락망을 나타낸 그림이다. 각 원은 개개인을 의미하며, 원 안의 숫자는 그사람의 번호를 나타내고 빨간원은 연락을 시작하는 당번을 의미한다. 화살표는 연락이 가능한 방향을 의미한다. 위의 예시에서는 7번과 1번은 서로 연락이 가능하다, 하지만 2번과 7번의 경우 2번은 7번에게..
[SWEA] D4 4366 정식이의 은행 업무 (Python) 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWMeRLz6kC0DFAXd&categoryId=AWMeRLz6kC0DFAXd&categoryType=CODE 문제 삼성은행의 신입사원 정식이는 실수를 저질렀다. 은행 업무가 마감되기 직전인 지금, 송금할 금액을 까먹고 말았다. 하지만 다행스럽게도 정식이는 평소 금액을 2진수와 3진수의 두 가지 형태로 기억하고 다니며, 기억이 명확하지 않은 지금조차 2진수와 3진수 각각의 수에서 단 한 자리만을 잘못 기억하고 있다는 것만은 알고 있다. 예를 들어 현재 기억이 2진수 1010과 3진수 212을 말해주고 있다면 이는 14의 2진수인 1110와 14의 3진수인 112..
[모의 SW 역량 테스트] 5656 벽돌 깨기 (Python) 문제 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo&categoryId=AWXRQm6qfL0DFAUo&categoryType=CODE 문제 구술을 쏘아 벽돌을 깨트리는 게임을 하려고 한다. 구슬은 N번만 쏠 수 있고, 벽돌들의 정보는 아래와 같이 W x H 배열로 주어진다. ( 0 은 빈 공간을 의미하며, 그 외의 숫자는 벽돌을 의미한다. ) 게임의 규칙은 다음과 같다. ① 구슬은 좌, 우로만 움직일 수 있어서 항상 맨 위에 있는 벽돌만 깨트릴 수 있다. ② 벽돌은 숫자 1 ~ 9 로 표현되며, 구술이 명중한 벽돌은 상하좌우로 ( 벽돌에 적힌 숫자 - 1 ) 칸 만큼 같이 제거된..
[모의 SW 역량테스트] 1949 등산로 조성 (Python) 문제 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq&categoryId=AV5PoOKKAPIDFAUq&categoryType=CODE 문제 등산로를 조성하려고 한다. 등산로를 만들기 위한 부지는 N * N 크기를 가지고 있으며, 이곳에 최대한 긴 등산로를 만들 계획이다. 등산로 부지는 아래 [Fig. 1]과 같이 숫자가 표시된 지도로 주어지며, 각 숫자는 지형의 높이를 나타낸다. 등산로를 만드는 규칙은 다음과 같다. ① 등산로는 가장 높은 봉우리에서 시작해야 한다. ② 등산로는 산으로 올라갈 수 있도록 반드시 높은 지형에서 낮은 지형으로 가로 또는 세로 방향으로 연결이 되어야 한..
[SWEA] D4 3752 가능한 시험 점수 (Python) 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWHPkqBqAEsDFAUn&categoryId=AWHPkqBqAEsDFAUn&categoryType=CODE 문제 영준이는 학생들의 시험을 위해 N개의 문제를 만들었다. 각 문제의 배점은 문제마다 다를 수 있고, 틀리면 0점 맞으면 배점만큼의 점수를 받게 된다. 학생들이 받을 수 있는 점수로 가능한 경우의 수는 몇 가지가 있을까? 예를 들어, 첫 번쨰 Testcase의 경우, 총 문제의 개수는 3개이며 각각의 배점은 2, 3, 5점이다 가능한 시험 점수의 경우의 수를 살펴보면 0, 2, 3, 5, 7, 8, 10의 7가지가 있다. 두 번째 Testcase의 경..