반응형

2024/12/27 8

[Java] 자바 배열

개요배열이란 동일한 타입의 데이터 0개 이상을 하나의 연속된 메모리 공간에서 관리하는 것이다. 만약 동일한 타입인 여러개의 변수를 각각 생성하여 관리한다고 생각해 보자그럼 변수의 개수가 증가 함으로서 자연스레 코드의 길이가 증가될 것이다.또한 반복문을 적용하기가 불가능하며, 변수의 수가 동적으로 결정될 경우 사용할 수 없다. 따라서 배열을 통해 더욱 쉽고 편하게 변수를 관리할 수 있다.다른 언어와 마찬가지로 배열은 한 번 생성되면 크기가 고정되며, 인덱스를 사용해 요소에 접근한다.  배열 선언public class Main { public static void main(String[] args) { int[] numbers; // 권장 방식 int numbers2[]; /..

[Java] 자바 반복문 for, while, do while

개요자바에서 사용하는 반복문에 대해서 알아보자!  for문자바에서의 for문 또한 C/C++/C#/JS와 유사하다.인덱스를 활용한 for문을 통한 순회와, foreach처럼 동작하는 for문이 있다. public class Main { public static void main(String[] args) { int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for (int i = 0; i = 0; --i) System.out.print(nums[i] + " "); System.out.println(); for (int i : nums) System.out.print(i + " "); }}  while문자바에서의 ..

[Java] 자바 조건문 if, switch

개요자바에서 사용하는 조건문 if, switch에 대해서 알아보자  if문if문의 작성법은 C/C++/C#/JS 등과 동일하다.public class Main { public static void main(String[] args) { int a = 1; if (a % 2 == 0) System.out.println("even"); else System.out.println("odd"); }}  switch문여러가지 값 비교시 사용된다. 이 역시 타 언어와 동일하다.case를 따지기 위한 값은 반드시 정수형이거나 String 형태여야 한다. * String타입의 케이스 체크는 jdk 7이상 버전부터 가능하다. * 정수형 중 long타입은 switch문에서 ..

[Java] 자바 변수 타입, 타입 변환

개요변수란 자료를 저장하기 위한 메모리 공간으로 탑입에 따라 크기가 달라진다.메모리 공간에 값을 할당한 후 사용한다. 변수 타입, 형이란 데이터의 형태로 나타내며 데이터 타입에 따라 크게 2가지로 분류한다.기본형 : 미리 정해진 크기의 데이터 표현, 변수 자체에 값 저장참조형 : 크기가 미리 정해질 수 없는 데이터의 표현, 실제 값을 참조할 수 있는 주소만 저장 변수 타입변수 타입은 여느 언어와 비슷하다.특별히 다른 점은 논리형 타입의 변수는 C++에서는 bool, 자바에서는 boolean으로 표기한다.또 8비트 정수형 변수는 C++에서는 long long, 자바에서는 long으로 표기한다.타입크기설명byte1 byte (8비트)-128 ~ 127의 범위를 가지는 정수short2 byte (16비트)-3..

[Unity] 2D 캐릭터 위치 변경

개요게임을 플레이 하다 보면 플레이어가 특정 지역에 도달했을 경우 혹은 도달 후에 특정 키를 통해 인터렉션 시 다른 맵으로 이동하는 로직이 존재한다.이는 특정 오브젝트 간 충돌 시 트리거를 발생시키는 Is Trigger 기능을 통해 구현할 수 있다. 예를 들어 Player에 물리 적용이 적용되어 있으며 충돌 반경을 정해놓은 상태에서충돌 반경 및 Is Trigger 기능이 활성화된 특정 오브젝트에 접근 시 이벤트를 발생시킬 수 있다. player가 특정 타일에 접근 시 player의 좌표를 특정 위치로 이동시키는 기능을 구현해 보자  준비2D 맵 상에서 특정 지점에 도달 시 player를 다음 레벨로 이동시키고, 이전 레벨로 이동하는 기능을 구현한다.  다음과 같은 레벨이 있을 때 이전 레벨에서 현재 레벨..

[S1] 백준 30406번 산타 춘배의 선물 나눠주기 C++ 그리디 알고리즘

리뷰 https://www.acmicpc.net/problem/30406N개의 선물을 N/2 마리의 고양이에게 2개씩 나누어 주고, 각 선물의 번호를 XOR한 값의 합의 최대치를 구하는 문제  전역 변수n : 주어지는 선물의 개수를 저장할 변수ans : 정답을 저장하기 위한 변수cnt : 주어지는 선물 번호의 개수를 저장할 정수형 배열prio : 그리디한 선물을 배분하는 순서를 담은 정수형 2차 배열 함수없음  문제풀이n값을 입력 받고 n개의 선물 정보를 입력 받는다, 입력 받은 선물 번호를 index로 cnt배열의 값을 증가시킨다.4 * 4크기의 for문을 개행해 준다, 만약 i번호를 가지는 선물이 존재하지 않으면 continue 처리해 준다.i번호의 선물의 개수와, i번째 선물의 j번째 우선순위를 갖..

[Unity] 오브젝트 네이밍 자동화

개요유니티에서 오브젝트를 관리할 때 이전에 사용했던 오브젝트를 복제하여 재활용 하는일이 많다.예를 들어 유사한 구조로 이루어 진 레벨을 관리할 때 Level1 오브젝트를 복사하여 Level2 오브젝트로 만들어 사용하곤 한다.이럴 때 오브젝트를 복사하게 되면 Level1 (1) 이런 식으로 오브젝트가 복사된다.하지만 내부 child오브젝트들은 복사한 부모 오브젝트의 이름을 그대로 따라가게 된다.이런 특성은 간혹 혼란을 유발하곤 하여 보통은 child오브젝트의 이름도 변경해 주는 편이다. 하지만 Level오브젝트 내에 무수히 많은 child오브젝트가 존재한다면 어떻게 될까?매번 수동으로 오브젝트 이름을 변경해 주기가 귀찮고 시간이 많이 소요될 것이다.Unity Editor을 사용하여 이런 부분에 대한 자동화..

[G5] 백준 17485번 진우의 달 여행 (Large) C++ 다익스트라

리뷰 https://www.acmicpc.net/problem/17485알고리즘 분류에는 다이나믹 프로그래밍 딱 하나 뿐이었는데, 다익스트라를 활용해도 AC를 받는 문제였다.n * m값이 최대 100만에 3차원 배열을 사용하다 보니 메모리와 시간을 좀 많이 사용한 문제 진우의 달 여행 (Small)문제도 있다, 해당 문제도 DP문제던데 BFS로 풀이했던 기억이 있다.DP문제를 풀러 와서 다른 알고리즘을 적용해서 푸는게 과연 맞는 것일지...백준 17484번 진우의 달 여행 (Small) C++ BFS, 너비 우선 탐색 백준 17484번 진우의 달 여행 (Small) C++ BFS, 너비 우선 탐색리뷰 10달에 걸친 복수가 완료되었다. 아무것도 모르는 코린이 시절 날 괴롭혔던 문제https://www.ac..

728x90
반응형