Loading...
2024. 4. 21. 04:12

Unity 기본7 - foreach, 연습문제 풀기

1. foreach 배열이나 컬렉션에서 모든 원소 각각을 한번씩 꺼내서 쭉 써보겠다는 의미의 반복문 foreach ((데이터타입) (변수명) in (컬렉션명)){반복 실행할 명령} 1) 배열 using System.Collections; using System.Collections.Generic; using UnityEngine; public class HelloWorld : MonoBehaviour { // Start is called before the first frame update void Start() { int[] a = { 2, 4, 6, 8, 10 }; foreach (int number in a) { Debug.Log(number); } } // Update is called once ..

2024. 4. 20. 03:25

Unity 기본6 - C#의 컬렉션 List, Dictionary

1. 컬렉션 하나의 이름으로 여러개의 데이터를 묶어서 관리하는 것 배열과 비슷한데, 크기가 정해져 있지 않다 실시간으로 크기를 변화시킬 수 있다 배열은 다음과 같이 중간에 어디를 제거하면, 나머지 원소들은 그대로 있다 컬렉션은 중간에 원소를 지우면 뒤에 있는 원소가 앞으로 온다 컬렉션에 해당하는 자료구조는.. Dictionary, List, Queue, SortedList, Stack, ArrayList, Hashtable, ... 2. List List는 배열에 컬렉션으로서의 특징을 더한 형태 배열과는 다르게 개수가 정해져있지 않은 데이터의 목록을 저장하기에 적절 ArrayList와 비슷한데, ArrayList는 저장할 데이터의 타입이 고정이 안된다. List는 어떤 타입의 데이터를 저장할지 미리 지정..

Python dict indexing보다는 list indexing을 사용해야하는 이유

dict에서 key에 접근하는 시간과 list에서 index로 접근하는 시간은 O(1)인데, dict의 경우 hash로 구현되어 있어서 key,value가 많은 경우 hash collision으로 인해 list indexing보다 시간이 더 걸릴 수 있다. 만약 시간초과 판정을 받는다면 dict indexing을 list indexing으로 바꿀 수 있는지 체크해보자. https://deepdata.tistory.com/960 문자열 해싱(hashing) 기본 개념 배우기 String Hashing - Algorithms for Competitive Programming (cp-algorithms.com) String Hashing - Algorithms for Competitive Programming..

2022. 9. 11. 17:57

알고리즘 문제를 풀기위해 2차원 배열에서 이해해야할 테크닉들

1. 2차원 배열 선언 1-1) 일반적으로 [ [0,1,2,3], [1,2,3,4] ] 과 같이 [0,1,2,3], [1,2,3,4]는 각각 행을 나타내고 (0,1), (1,2), (2,3), (3,4)는 각각 열을 나타냄 세로의 길이(행의 개수), 가로의 길이(열의 개수)를 필요로 한다 1-2) 입력을 받을때 1 2 3 4 5 6 7 8 9 는 '1 2 3'을 리스트로 바꿀려면, input().split() 123 456 789 는 '123'을 리스트로 바꿀려면 list(input()) 2. 2차원 배열 순회하기 2-1) 행 우선 순회 2차원 배열 각 칸의 좌표를 (x,y)라고 하면, arr[y][x]로 접근할 수 있다 n*m 배열에서 for y in range(n): for x in range(m):..

2022. 6. 29. 02:44

코딩테스트를 위한 스택과 큐 기본 이론

1. 탐색(search) 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 코딩테스트를 통과하기 위해 그래프, 트리 등의 자료구조 안에서 탐색을 할줄 알아야한다 이를 위한 대표적인 탐색 알고리즘이 바로 DFS/BFS 2. 자료구조 데이터를 표현하고 관리하고 처리하기 위한 구조 스택(stack)과 큐(queue)는 자료구조의 기초 개념 3. 스택과 큐에서 고려해야할 부분 스택과 큐는 자료구조의 기초 개념으로 다음의 두 핵심적인 함수로 구성 삽입(push): 데이터를 삽입한다 삭제(pop): 데이터를 삭제한다 실제 스택과 큐를 사용할 때는 삽입과 삭제 외에도 오버플로우와 언더플로우도 고민해야함 오버플로우(overflow): 특정한 자료구조가 수용할 수 있는 데이터의 크기를 이미 가득 찬 상태에서 삽입 연산..

2022. 4. 28. 04:35

이차원 배열 회전시키는 방법

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr rows * columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows * columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1,y1,x2,y2)인 정수 4개로 표현하며 그 의미는 다음과 같습..