정렬

👉🏻 2230번: 수 고르기 import sys; input=sys.stdin.readlineN, M = map(int, input().split())num = sorted([int(input()) for _ in range(N)])left, right = 0, 1ans = float('inf')while right 💡 왜 이렇게 풀었을까?저는 투 포인터를 사용해서 해당 문제를 풀었습니다. 이제는 왜 투 포인터를 사용하는지 알겠더군요.M과 A[i]의 크기 범위만 봐도 2중 반복문으로 걸러내기엔 시간 초과가 날 것만 같았습니다.투 포인터는 정렬된 상태에서 탐색하면 두 수의 차이를 조금 더 효율적으로 계산할 수 있고,그래서 특정 차이를 만족하는 두 수를 빠르게 찾기 위해 투 포인터 기법을 활용해봤습니..
👉🏻 24444번: 알고리즘 수업 - 너비 우선 탐색 1import sys; input=sys.stdin.readlinefrom collections import deque, defaultdictdef bfs(graph, start, visited): queue = deque([start]) visited[start] = 1 order = 2 while queue: node = queue.popleft() for neighbor in graph[node]: if visited[neighbor] == 0: visited[neighbor] = order queue.append(neigh..
👉🏻 2303번: 숫자 게임import sys; input=sys.stdin.readlinefrom itertools import combinationsn = int(input())max_scores = []for person in range(1, n+1): cards = list(map(int, input().split())) max_score = 0 for combo in combinations(cards, 3): score = sum(combo) % 10 max_score = max(max_score, score) max_scores.append((max_score, person))winner = max(max_scores, key=l..
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(data, col, row_begin, row_end): answer = 0 data.sort(key=lambda x: (x[col-1], -x[0])) for i in range(row_begin-1, row_end): si = 0 for e in data[i]: si += e % (i+1) answer ^= si return answer정렬과 XOR 연산만 할 줄 알면 간단히 풀 수 있는 ..
👉🏻 25329번: 학생별 통화 요금 계산info = {}for _ in range(int(input())): time, name = input().split() hour, minute = map(int, time.split(':')) total_minute = hour * 60 + minute info[name] = info.get(name, 0) + total_minutefor name in info: if info[name] get() 함수에 default 값을 부여하여 dict를 초기화하는 방법은 정말 유용한 것 같습니다. ㅎㅎ다른 것들은 무리가 없었는데 info를 정렬할 때 요금은 내림차순으로, 이름은 오름차순으로 정렬을 해야했기에 고민을 꽤나 했습니다. 만약, 정..
👉🏻 11931번: 수 정렬하기 4import sys; input=sys.stdin.readlineprint(*sorted([int(input()) for _ in range(int(input()))], reverse=True), sep='\n')python에서는 아주 간단한 list 정렬 문제입니다.시간 복잡도를 더 줄이고자 한다면, 계수 정렬(Counting Sort)을 사용하시면 됩니다.단, N이 커지게 되면 오히려 힘들어질 수 있으니, 왠만한 정렬 문제는 sorted()나 sort()로 해결!
solved.ac알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 문제들의 난이도 및 티어 정보를 제공하는 사이트입니다.solved.ac이번 포스팅에서는 수학 및 정렬 문제들과 마지막으로 브루트포스 문제를 하나 풀어보는 시간 가져보겠습니다. 2869번 : 달팽이는 올라가고 싶다 2869번: 달팽이는 올라가고 싶다첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B www.acmicpc.net달팽이가 나무 막대를 올라가는 데 걸리는 총 일 수를 계산하는 문제입니다.달팽이는 낮에 'A'만큼 올라가고 'B'만큼 내려가는데, 목표 높이까지 도달하는 마지막 날에는 내려가지 않습니다.따라서, 전체 막대 높이는 'V'에서 마지막 날에 내려가지 않을 'B'를 뺀 뒤,..
오늘은 코딩 테스트에서 중요한 유형 중 하나인 'Sorting(정렬)'에 대해 이야기해보려 합니다. 정렬 알고리즘은 주어진 데이터를 일정한 순서대로 배열하는 알고리즘입니다. 정렬이란? 정렬은 데이터를 일정한 순서로 재배치하는 작업을 의미합니다. 주어진 데이터를 크기, 알파벳 순서 등의 기준에 따라 오름차순(ascending order)이나 내림차순(descending order)으로 정리할 수 있습니다. 일반적으로 사용되는 몇 가지 정렬 알고리즘과 관련된 개념들을 소개하겠습니다. 버블 정렬(Bubble Sort): 인접한 두 원소를 비교하여 필요에 따라 위치를 교환하는 방식으로 동작합니다. 반복적인 비교와 교환을 통해 가장 큰 원소가 마지막으로 이동하게 됩니다. 선택 정렬(Selection Sort): ..
ReJoy
'정렬' 태그의 글 목록