728x90

CS(컴퓨터 사이언스) 10

[코드트리] 고대 문명 유적 탐사

문제링크https://www.codetree.ai/training-field/frequent-problems/problems/ancient-ruin-exploration/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai처음엔 BFS로 쉽게 할 것 같았는데이상한 곳에 꽂혀서 8시간 동안 헤맨 문제...(Flood Fill도 필요하다) 회전의 중심을 1, 1에서 시작하고그 다음은 2, 1에서 시작하도록 코드를 짜는거 까진 좋았는데,1,1을 중심으로 회전한 이후 board를 업데이트 하는게 아니라기존 boa..

[코드트리] 격자 숫자 놀이

문제링크https://www.codetree.ai/training-field/frequent-problems/problems/matrix-number-play/description?page=3&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai numpy를 이용해서 남들과 다르게 풀어보기그치만 코드 실행하면 정상 제출 되지는 않는다는 점! 분명 일반 리스트보다 numpy를 이용하면코드 실행 속도가 빨라서 좋을텐데 🤔🤔 ※ 사용하고자 하는 리스트의 길이가 짧은 경우zip함수와 numpy의 transpose에 큰 차이가 없겠지만그 길이가..

[백준] 10989 - 수 정렬하기 3(python)

문제링크 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이코드 import sys n_list = [0]*10001 for _..

[백준] 2751 - 수 정렬하기 2(python)

문제링크 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이코드..

[프로그래머스] 타겟넘버 - BFS로 풀기

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1..

[알고리즘] if, elif, else 와 if, if, if의 차이

IF~ ELSE~ / IF~ IF~ 나만 몰랐을 수도 있고 단순해서 무시할 수도 있는 부분이지만 if~elif~else~ 구문과 if~if~if~ 구문의 용도와 실행 속도에 대한 이야기이다. 너무나도 당연히 자연스럽게 if~ else~를 사용하고 있지만 짧은 코드, 짧은 실행속도를 고려하면서 든 의문인데 조건문에서 단순히 확인해야 할 조건이 2가지나 3가지라면 if~ elif~ else 보다 if~ if~ if~ 혹은 if~ if~ else~가 빠르고 코드도 더 짧지 않을까 라는 생각이 들었다. 궁금한 건 눈으로 찍어봐야 직성이 풀리기 때문에 간단한 코드로 실행 시간을 비교해 보았다. 테스트 if~ elif~ 구문의 elif에서 조건이 걸리도록 테스트 했을때를 보면 if~ if~를 사용했을때의 시간보다 ..

[자료구조] 그래프와 트리(Graph, Tree)

트리와 그래프 그래프(Graph) 그래프란 그래프는 노드(하나의 점)와 노드 간을 연결하는 간선으로 구성된 자료 구조이다. 이를 통해 연결된 노드 간의 관계를 표현할 수 있는 자료구조이다. 그래프의 특징 - 그래프는 순환 혹은 비순환 구조를 이룬다 - 그래프는 방향이 있는 그래프와 방향이 없는 그래프가 있다. - 루트 노드의 개념이 없다 / 부모-자식 관계라는 개념이 없다. - 2개 이상의 경로가 가능하다.(무방향, 방향, 양방향 가능) - 그래프는 네트워크 모델이다. 트리(Tree) 트리란 트리는 그래프와 같이 노드와 노드간을 연결하는 간선으로 구성된 자료구조이다. 그러나 트리는 그래프 중에서도 특수한 케이스에 해당하는 자료구조이다. 트리는 두 개의 노드 사이에 반드시 1개의 경로만을 가지며 사이클이 ..

[자료구조] 스택과 큐, 데크(Stack, Queue, Deque)

스택(Stack) 스택이란 스택은 쉽게 생각하면 박스에 차곡차곡 물건을 정리하는 형태이다. 먼저 들어간 것이 밑에 위치하기 때문에 나중에 나오게 되고 나중에 들어간 것이 위에 위치하기 때문에 먼저 나오는 형태의 자료구조이다. 그렇기 때문에 스택의 모든 연산은 스택의 최상단에서 일어난다. ※LIFO(Last In First Out, 후입선출) 그럼 이렇게 처음 들어간 값을 쉽게 빼서 쓰지도 못하는 불편한 형태의 자료구조를 쓰는 이유는 무엇이며 어디에 쓰이는가 스택은 주로 컴퓨터 연산에 사용하는 자료구조로 연산의 우선 순위에 따라 쉽게 연산할 수 있도록 도와준다. 숫자와 연산자가 들어오면 연산자의 우선 순위에 따라 스택에 쌓아 두거나 스택의 위에서 나오면서 연산이 이루어 지는 것이다. 스택 관련 용어 - T..

[자료구조] 배열과 리스트(Array & List)

배열 배열이란 연관된 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 선형 자료구조로 배열을 이용하면 하나의 변수에 여러 정보를 담을 수 있으며, 반복문과 결합하여 효율적으로 데이터를 처리할 수 있다. 주로 데이터의 개수가 정해져 있는 경우나 데이터의 수정이 적은 경우, 혹은 데이터의 검색이 빈번한 경우에 사용하는 선형 자료구조형이다. 배열의 특징으로는 배열안의 데이터들은 같은 자료형으로 나열되있다는 것, 그리고 데이터가 연속된 메모리 공간에 순차적으로 저장 된다는 것, 그래서 배열의 논리적 순서(인덱스)와 원소값의 물리적인 순서(메모리 주소) 두가지가 동일하다는 것 등을 꼽을 수 있다. 배열에서의 시간 복잡도 삽입/삭제 -배열의 맨 앞에 삽입/삭제: O(n) -배열의 맨 뒤에 삽입/삭제: O(1) -배..

[자료구조] 자료구조의 정의

자료구조 자료구조의 정의 자료구조는 문제 해결을 위해 데이터를 조직화하고 저장하는 것과 이를 구현하는 데 필요한 알고리즘에 대해 논하는 기초이론이다. 자료구조는 CS(컴퓨터 사이언스)에서 알고리즘과 함께 가장 중요한 기초이론이다. 알고리즘에서 효과적으로 접근, 변경, 처리가 가능하도록 만들어진 데이터 체계이기 때문이다. 자료구조는 데이터를 효율적으로 사용하기 위한 것으로 연산의 다양성 및 효율성 등을 제고하여 사칙연산 외에도 읽기, 삽입, 삭제, 비교, 교환 등 다양한 연산의 사용을 고려해야 한다. 추상 자료형과 자료구조 자료에 대해 처리를 어떻게 할지 자료와 동작을 함께 고려하면서, 컴퓨터에 효과적으로 표혀느 저장, 처리하는 기술 그리고 캡슐화 하는 것을 추상 자료형이라고 한다. 추상 자료형은 문제를 ..

728x90