목록정렬 (47)
기록방
👉 문제링크 20207번: 달력 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력에 표시해놨다. 여름이 거의 끝나가자 장 www.acmicpc.net 🔸 문제 분석 🔸 규칙에 따라 달력에 일정이 표시된다. 이어진 일정들의 높이와 너비를 곱해 면적을 구하고, 면적들의 총 합을 출력하면 된다. 🔸 코드 🔸 import sys input = sys.stdin.readline print = sys.stdout.write N = int(input()) cal = [] # 입력된 일정 리스트 calmap = [0]*366 # 일정을 표시할 달력 for i in range(N): # 일정 입력 S, E = map(int, ..
👉 문제링크 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 문자열의 길이 내림차순 정렬과 사전식 정렬을 같이 적용하는 문제이다. 헤더 의 sort 함수 compare인자를 사용하면 쉽게 풀 수 있다. 🔸 코드 🔸 #include #include #include using namespace std; bool check(std::string& a, std::string& b) { if (a.size() < b.size()) return true; else if (a.size() ==..
👉 문제링크 2204번: 도비의 난독증 테스트 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 www.acmicpc.net 🔸 문제 분석 🔸 문자열을 대문자 혹은 소문자로만 이루어 지도록 통일시키는 변환이 필요하다. 사전식 오름차순 정렬에서 가장 앞에오는 것을 고른다. 입력받자마자 전 값과 비교해서 출력하는 코드를 작성했지만, 오류가 많이 나서 정답 포스팅을 참조했다. 🔸 기존 코드 (오답)🔸 #include #include using namespace std; int main(void) { int n; string input, answer, temp; do { cin ..
버블 정렬(Bubble Sort) : 리스트의 두 요소씩 비교해가며 정렬 [python] 1) 뒤에서부터 오름차순 정렬 arr = [9,2,1,4,10,3,7,5,6,8] for i in range(len(arr)-1) : #진행 반복 횟수 (n-1회) for j in range(0, len(arr)-1-i) : #비교할 요소의 인덱스 if arr[j+1] < arr[j] : #큰 수를 뒤쪽으로 교환 temp = arr[j+1] arr[j+1] = arr[j] arr[j] = temp print(arr) 2) 뒤에서부터 내림차순 정렬 arr = [9,2,1,4,10,3,7,5,6,8] for i in range(len(arr)-1) : #진행 반복 횟수 (n-1회) for j in range(0, len..
삽입정렬(Insertion Sort) : 리스트의 원소를 정렬이 완료된 부분에서 맞는 자리를 찾아 삽입하여 정렬 [python] 1) 오름차순 arr = [9,2,1,4,10,3,7,5,6,8] for i in range(1,len(arr)) : #정렬할 원소 인덱스 선택 temp = arr[i] #삽입하여 정렬할 원소를 저장 for j in range(i, -1, -1) : #정렬된 부분 인덱스 선택 if arr[j-1] > temp : #정렬한 원소보다 크면 뒤로 미룸 arr[j] = arr[j-1] else : #크지 않다면 멈추고 break arr[j] = temp #그 자리에 정렬할 원소를 삽입 print(arr) 2) 내림차순 arr = [9,2,1,4,10,3,7,5,6,8] for i in..