본문 바로가기

728x90

전체 글

(478)
[CH6 정렬] 기준에 따라 데이터를 정렬 (1) 연속된 데이터를 기준에 따라서 정렬하기 위한 알고리즘 정렬 알고리즘 개요 정렬(Sorting)이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다 프로그램에서 데이터를 가공할 때 오름차순이나 내림차순 등 대부분 어떤 식으로든 정렬해서 사용하는 경우가 많기 때문에 정렬 알고리즘은 프로그램을 작성할 때 가장 많이 사용되는 알고리즘 중 하나다 정렬 알고리즘으로 데이터를 정렬하면 이진 탐색(Binary Search)이 가능해진다 -> 뒤에서 배움 수많은 정렬 알고리즘 중 여기서는 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬만 알아보자! '정렬'에 대해 공부하면 알고리즘의 효율성을 쉽게 이해할 수 있게 된다 이는 코테에서도 중요하지만 면접에서도 자주 다루니까 확실하게 잡고 넘어가자!! 위의 카드를 ..
[탐욕법(Greedy)] Level 1 체육복 - 파이썬 전에 c++로 풀었던 적이 있는 문제여서 파이썬으로만 풀어보았다 근데 알고리즘이 또 생각이 안나서 결국 내가 구현한 코드를 참고해서 풀었다,,,씨,,, 다른 사람들 풀이를 보니까 다들 엄청 깔끔하게 풀었던데,,, 난 내 코드가 직관적이라 좋다ㅠㅠ def solution(n, lost, reserve): answer = 0 student = [1 for i in range(n)] for i in range(len(lost)): student[lost[i]-1] -= 1 for i in range(len(reserve)): student[reserve[i]-1] += 1 for i in range(n): if student[i]==2: if i != 0 and student[i-1]==0: student[i..
[CH5 DFS/BFS] 미로 탈출 문제 설명 동빈이는 NXM 크기의 직사각형 형태의 미로에 갇혀 있다 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다 동빈이의 위치는 (1,1)이고 미로의 출구는 (N,M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있다 이 때 괴물이 있는 부분은 0으로, 괴물이 없는 부분은 1로 표시되어 있다 미로는 반드시 탈출할 수 있는 형태로 제시된다 이 때 동빈이가 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오 칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다 입력 조건 첫째 줄에 두 정수 N, M(4 n >> m; for(int i=0;igraph[i][j]; } } cout
01장 파이썬이란 무엇인가? 01-1 파이썬이란? 인퍼프리터 언어 파이썬은 컴퓨터 프로그래밍 교육을 위해도 많이 사용되지만, 기업의 실무를 위해서도 많이 사용된다 대표적인 예시로 구글, 인스타그램, 드롭박스 등이 있다 파이썬 프로그램은 공동 작업과 유지 보수가 매우 쉽고 편해서 사용자 층이 넓어지고 있는 추세이다 01-2 파이썬의 특징 코드를 보면 직관적으로 알 수 있을만큼 인간다운 언어이다 문접이 쉬워서 빠르게 배울 수 있다 파이썬은 오픈소스로 무료이다 보통 프로그램을 만들 때 프로그램의 전반적인 뼈대는 파이썬으로 만들고, 빠른 실행 속도가 필요한 부분은 C로 만들어서 파이썬 프로그램 안에 포함시킨다 파이썬은 코드가 간결하여 가독성도 좋은 편이다 01-3 파이썬으로 무엇을 할 수 있을까? [ 파이썬으로 할 수 있는 일 ] 1. 시..
[해시] Level 3 베스트앨범 - C++ 걍 파이썬만 할걸 그랬나 계속 c++에 집착중,,, 거의 다 된 것 같은데 일단 틀린 코드 틀린 코드 #include #include #include #include #include using namespace std; bool cmp(const pair& a, const pair& b) { if (a.second == b.second) return a.first < b.first; return a.second < b.second; } vector solution(vector genres, vector plays) { vector answer; map total; multimap gen_play; map play_num; //map gen_map; for(int i=0;i1) { answer.push_b..
[해시] Level 3 베스트앨범 - 파이썬 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한 사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입..
[CH5 DFS/BFS] 음료수 얼려 먹기 문제 설명 NXM 크기의 얼음 틀이 있다 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다 이 때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오 다음의 4X5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다 입력 조건 첫번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어진다 (1 n>>m; // 2차원 리스트의 맵 정보 입력 받기 for(int i=0;igraph[i][j]; } } for(int i=0;i
[해시] Level 2 전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 풀이) 2가지 알..

728x90