일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 구현
- ODQA
- 백준
- Level1
- python3
- 파이썬 3
- 백트랙킹
- 다시보기
- 정렬
- 단계별문제풀이
- 기술면접
- 그래프이론
- 이진탐색
- 개인회고
- 알고리즘스터디
- 글또
- 그리디
- 알고리즘_스터디
- mrc
- Level2
- 최단경로
- 이코테
- 부스트캠프_AITech_3기
- 프로그래머스
- dp
- dfs
- U_stage
- 부스트캠프_AITech3기
- Level2_PStage
- 주간회고
- Today
- Total
목록정렬 (7)
국문과 유목민

오늘은 백준에서 정렬과 백트랙킹 문제를 풀었다. 정렬 문제의 경우는 간단하게 풀었고, 백트랙킹 문제도 좀 쉽게 푸는 줄 알았는데, 백트랙킹이 아닌 permutaion이나 combination을 활용해서 문제가 쉬웠던 것 같다. n-queens문제도 처음에는 itertools 라이브러리를 활용해서 풀어보려고 했으나 메모리 초과가 나왔다. 그래서 백트랙킹으로 다시 풀었는데도 시간초과가 나와서, 다른 블로그 글을 참고해서 다시 풀었는데도 계속 시간초과가 나온다. 내 생각에 테스트 케이스가 하나 추가가 된 것 같다. 파이썬으로는 풀기 힘들 것 같다는 생각이 들었다. 백트랙킹 문제의 경우 재귀로 풀어야 하는데, 재귀에 익숙하지 못한 듯 하다. permutation이나 combination 메소드의 활용법은 알았으..

오늘은 만만해(?)보이는 정렬과 이진탐색 두 단원 총 7문제를 풀었다. 문제를 풀면서 솔직히 만만하게 접근한 감이 없지 않아 있는데, 아직 많이 부족하다는 것을 느꼈다. 그래도 오늘 좀 여러가지를 배울 수 있었던 것 같다. 정렬에서 여러가지 다중 값을 주는 거라든가, 이진탐색에서 bisect 라이브러리의 존재라든가 실제 코테에서 유용하게 상요할 수 있을 도구들에 대해서 알 수 있는 시간이었던 것 같다. 그리고 heapq를 활용해서 최소힙 그래프를 구현할 수 있다는 것을 다시 한 번 깨달았던 것도 좋은 경험이었다고 생각한다. 내일은 DP파트를 들어가야 하는데, 토요일에 코테 시험이라서 지금까지 학습했던 코드들을 정리하는게 더 좋을 것 같기도 하다. 그건 내일 상황을 봐서 공부를 하는 것으로 하겠다. 오늘 ..

"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다. 문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다. 소요시간: 15분 1. 문제 설명 - 게임을 개발하는데 각 스테이지 별로 실패율을 구하고자 한다. 실패율이 높은 순서대로 스테이지 번호를 출력하는 문제 2. 접근 방식 - 스테이지를 순서대로 정렬하고, 스테이지에 해당하는 실패율을 같이 가져가면서 마지막에 정렬해서 출력한다. 3. 코드 def solution(N, stages): answer = [] stages.sort() total = len(stages) for i in range(1, N+1): if stages.count(i) == 0: answer.append((i, 0)) else: player..

"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다. 문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다. 소요시간: 18분 1. 문제 설명 - 이름, 국어점수, 영어점수, 수학점수가 순서대로 들어올 때 각 정렬조건에 맞춰서 이름을 출력하는문제 2. 접근 방식 - sort함수의 key=lambda를 활용하려고 했는데, 조건을 괄호를 사용해서 여러 개 줄 수 있다는 것을 까먹어서 조금 찾아보고 풀었다. 3. 코드 import sys input = sys.stdin.readline n = int(input()) students= [] for _ in range(n): name, kor, eng, math = input().split() students.append(..

1. 문제 설명 - 주어진 두 배열에서 값들을 옮겨 한 배열의 합이 최대가 되도록 만드는 문제 - 각 배열의 원소들을 오름차순과 내림차순으로 정렬해서 원소들을 바꿔주면 해결되는 문제 2. 코드 n, k = list(map(int,input().split())) ls1 = sorted(list(map(int, input().split()))) ls2 = sorted(list(map(int, input().split())), reverse=True) # k번만큼 반복 (굳이 k번을 안해도 된다면??) for i in range(k): if ls1[i] < ls2[i]: ls1[i], ls2[i] = ls2[i], ls1[i] else: break print(sum(ls1)) """ 5 3 1 2 5 4 3 ..

1. 문제 설명 - 성적이 낮은 순서대로 학생을 출력하는 문제 - sort함수에 내제된 key를 활용할 수 있는지를 묻는 문제 2. 코드 n = int(input()) array=[] for i in range(n): tmp = input().split() array.append([tmp[0], int(tmp[1])]) array.sort(key=lambda array : array[1], reverse=True) for i in array: print(i[0], end=" ") """ 2 이이 60 광개토 70 >> 광개토 이이 """ 3. 코멘트 X