본문 바로가기
728x90

ALGORITHM142

[Algorithm] 정렬 - 버블정렬, 카운팅 정렬, 선택 정렬 정렬 (Sort) 데이터를 정해진 순서대로 나열 대표적인 정렬 방식 버블 정렬 카운팅 정렬 선택 정렬 퀵 정렬 삽입 정렬 병합 정렬 arr = [5, 6, 2, 9, 7, 1, 8, 3, 4, 0] 위와 같은 배열을 오름차순 정렬한다고 할 때, 정렬별로 어떻게 구현할 수 있을까? 버블 정렬 (Bubble Sort) 인접한 두 개의 원소를 비교하며 자리를 계속 교환하는 방식 첫 번째 원소부터 인접한 원소끼리 계속 자리를 교환하면서 맨 마지막 자리까지 이동 (가장 큰 원소부터 맨 마지막 자리에서 점점 앞으로 채워 넣기) 비교와 교환 O(n^2) # Bubble sort def BubbleSort(arr): for i in range(len(arr)-1, 0, -1): for j in range(0, i): .. 2021. 8. 16.
[BOJ/Python] 17413. 단어 뒤집기 2 📌 문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 📌 문제 접근 방법 첫 번째 풀이에서 분명 예제도 다 맞았고 생각나는 반례도 없는데 자꾸 틀렸다고 뜬다..ㅠㅅㅠ 아마도 split에서 뭔가 공백이 사라지는 걸까..?라는 짐작뿐..... 누가 제발 이게 왜 틀렸는지 알려주세요... 수정해서 완성시키고 싶다고요ㅠㅠㅠㅠㅠ 📌 코드 - 첫 번째 풀이 import sys S = sys.stdin.readline().. 2021. 8. 16.
[BOJ/Python] 1120. 문자열 📌 문제 https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 📌 문제 접근 방법 A의 앞 뒤에 문자가 추가되는 건 B와 똑같은 문자를 추가하면 되기 때문에 일단 무시! 처음 들어온 A와 B가 얼마나 일치하는지 B를 슬라이싱해가며 범위를 바꿔서 비교 📌 코드 import sys A, B = sys.stdin.readline().rstrip().split() min_cnt = len(B) for n in rang.. 2021. 8. 16.
[SWEA/Python] 1210. Ladder1 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 - 맞이한 문제들👿 현재 칸에서 왼쪽이 1이면 왼쪽으로 이동을 하는데 이동 후에도 왼쪽으로 또 이동해야 하는데, 오른쪽에도 1이 있음!!!! -> 재귀함수로 계속 왼쪽으로만 갈 수 있도록 구현 (오른쪽도 마찬가지) j가 0이거나 99일 때 생기는 IndexError 이것도 함수를 따로 구현해서 처리해주니 그나마 깔끔,, later) 칸을 중심으로 이동하는 게 아니라, 세로축을 기준으로 이동하면 가로방향을 한 방에 이동할 수 있다! 📌 코드 import sys sy.. 2021. 8. 13.
728x90