분류 전체보기

    [Python] list B = A와 B = A[:]의 차이

    파이썬에서 list A의 원소의 값을 다른 리스트에 그대로 넣어주고 싶을 때, A = [1,2,3] B = A A = [1,2,3] B = A[:] 이 두 개의 코드는 얼핏보면 같은 결과를 나타낼 것 같지만 (실제로도 B = [1,2,3]이라는 같은 결과를 초래하긴 한다.) 첫 번째 경우 B가 A를 참고하게 되어 서로의 값에 영향을 주게 된다. 별개의 리스트를 만들면서 같은 원소를 넣어주고 싶다면 두 번째 코드를 사용하자!

    [Unity] Timer UI 구현하기

    Astro Cat에서 구현한 미로게임의 규칙이 특정 시간 안에 미로를 탈출하는 것이었기에 타이머 구현이 필요했다. UI > Canvas 로 캔버스 UI를 추가하고 그 위에 타이머가 될 Text UI를 추가한다. time 변수로 시간을 초 단위로 받고, Time.deltaTime을 이용해 현실의 1초가 줄어들 때마다 타이머의 1초가 줄어들 수 있도록 설계했다. 이 코드를 구현할 때 주의할 점은 시간 단위가 60이라는 점! 그리고 -(음수) 시간은 없으니 그 점도 유의해야한다. public Text[] timeText; public Text gameOverText; float time = 120; // 제한 시간 120초 int min, sec; void Start() { //제한 시간 02:00 timeT..

    [Python] itertools: permutations, combinations | 순열, 조합

    permutations (순열) iterable 객체에서 n개의 데이터를 뽑아 일렬로 나열하는 모든 경우 product (중복순열) iterable 객체에서 중복을 허용하여 n개의 데이터를 뽑아 일렬로 나열하는 모든 경우 combinations (조합) iterable 객체에서 n개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우 combinations_with_replacement (중복조합) iterable 객체에서 중복을 허용하여 n개의 데이터를 뽑아 순서를 고려하지 않고 나열하는 모든 경우 이를 사용한 예시는 아래와 같다. from itertools import combinations, combinations_with_replacement, permutations, product data..

    [Python] 2차원 배열에서 최댓값과 최솟값 구하기

    2차원 배열의 경우 map 함수를 이용해 전체 리스트에서 최댓값 / 최솟값을 구할 수 있다. result = [[1,2,3,4,5],[5,6,7,8,9]] print(max(result)) # 원소 값의 합이 가장 큰 리스트 print(max(map(max,result))) # 최대값 print(min(map(min,result))) # 최소값 리스트의 열의 최댓값, 최솟값이 궁금하다면 아래식처럼 활용해주면 된다. result = [[1,2,3,4,5],[5,6,7,8,9]] print(max(r[0] for r in result)) # 5 print(min(r[1] for r in result)) # 2

    [iOS][HIG] Interface Essentials (한글 ver.)

    Apple HIG를 한글로 읽어보자! Interface Essentials 인터페이스 필수 사항 Most iOS apps are built using components from UIKit, a programming framework that defines common interface elements. This framework lets apps achieve a consistent appearance across the system, while at the same time offering a high level of customization. UIKit elements are flexible and familiar. They’re adaptable, enabling you to design a si..

    [Algorithm] 동적 프로그래밍 | Dynamic Programming (DP)

    큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법 다이나믹 프로그래밍을 사용하는 이유 1. 메모리 공간을 더 사용하더라도, 연산 속도를 증가시키기 위해 2. 중복되는 연산을 줄이기 위해 다이나믹 프로그래밍의 사용 조건 1. 최적 부분 구조 (Optimal Substructure) - 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제를 해결할 수 있을 때 2. 중복되는 부분 문제 - 동일한 작은 문제를 반복적으로 해결할 수 있을 때 다이나믹 프로그래밍 문제 접근 방법 - 그리디, 구현, 완전 탐색 등으로 문제를 해결할 수 있는 지 검토한 후 떠오르지 않는다면 다이나믹 프로그래밍을 고려해본다. - 재귀 함수로 작성해본 후, 작은 문제에서 ..

    [Unity] 마우스로 오브젝트 클릭 시 인식하기

    마우스로 캐릭터를 클릭하면 캐릭터를 인식하고 특정 대사가 나오게 구현하고 싶었던 나.. 말풍선을 보면 주민을 마우스로 클릭해 말을 걸라는 문구가 나온다. 천사주민, 악마주민을 각각 클릭하면 다른 말풍선이 나타난다. 어떻게 하면 마우스로 물체를 클릭하고, 이를 인식해 물체를 판별하여 명령을 줄 수 있을까? 바로 RaycastHit와 tag를 이용하는 것이다. Raycast란 Raycast 스크립팅을 가진 게임오브젝트의 원점에서 내가 설정한 방향으로 Ray(눈에 보이지 않는 광선)를 날려 특정 거리 이내에 물체의 충돌감지를 해주는 것이다. 이 때 Ray를 마우스의 포지션으로 설정해주면 마우스로 클릭 후 물체 감지가 가능하다. // 마우스로 클릭해서 인식 후 대화 Ray ray = Camera.main.Scr..

    [iOS][HIG] iOS Themes (한글 ver.)

    Apple HIG를 한글로 읽어보자! iOS Design Themes As an app designer, you have the opportunity to deliver an extraordinary product that rises to the top of the App Store charts. To do so, you'll need to meet high expectations for quality and functionality. 앱 디자이너로서 여러분은 앱 스토어 차트의 맨 위에 오르는 특별한 제품을 제공할 기회를 갖게 됩니다. 이를 위해서 여러분은 퀄리티와 기능에 대해 높은 기대치를 충족해야 합니다. Three primary themes differentiate iOS from other pla..