전체 글 18

[프로그래머스] L1 내적

문제 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 풀이 간단한 구현문제입니다. 두 개의 배열에서 같은 index의 값을 곱해 더하면되는 문제 그대로입니다. 배열의 길이도 1000 이하로 적기 때문에 속도 문제도 고민할 필요 없어보이며 a,b의 곱으로 integer 범위를 벗어날 일도 없어보입니다. public int solution(int[] a, in..

Singleton 패턴

위키피디아에 따르면 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. 즉 프로그램 전역적으로 단 하나의 객체만 존재하며 사용된다라고 해석이 됩니다. public class Singleton { private static Singleton instance; public static Singleton getInstance() { if (instance == null) { in..

[프로그래머스] L2 이진 변환 반복하기

문제 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 c를 2진법으로 표현한 문자열로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 1이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어 있습니다. 풀이 사실 처음 문제를..

[프로그래머스] L1 자릿수 더하기

문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 풀이 문제 그대로 자연수의 각 자리수를 더하여 결과로 리턴하는 문제입니다. 간단한 문제로 두가지 방법으로 풀어보았습니다. 어렵지 않은 문제기 때문에 설명할 부분도 별로 없는 듯 합니다. 1. 각 자릿수를 나눗셈을 이용하여 구분하기 모듈러 연산자를 이용하여 각 자릿수를 구해 더하는 방법입니다. public int solution(int n) { int input = n; int answer = 0; while(input > 0) { answer += (i..

[UWP] 이미 떠있는 ContentDialog 체크 방법

UWP에서 사용할 수 있는 팝업형식의 컨트롤은 두가지 정도입니다. Flyout과 ContentDialog. 물론 이 포스팅에서 두 컨트롤러에 대해 다룰 것은 아닙니다. 두 컨트롤에 대한 보다 자세한 내용은 사실 마이크로소프트 페이지에 존재합니다. https://docs.microsoft.com/ko-kr/windows/uwp/controls-and-patterns/dialogs UWP앱에서는 ContentDialog를 동시에 하나만 띄울 수 있습니다. 따라서 다른 ContentDIalog가 떠있는 상황에서 다시 ContentDialog를 띄우게 되면 exception이 발생하게되지요. 그래서 문득 궁굼해졌습니다. 이미 떠 있는 ContentDialog를 체크하는 방법은 없을까? 언제나와 같이 열심히 구글..

repl.it 온라인으로 코딩 컴파일 실행!! 공유까지 할 수 있는 사이트

오늘은 repl.it 이라는 사이트를 소개해볼까 합니다. repl.it은 온라인에서 코딩하고, 커파일하여 실행까지 해볼 수 있는 사이트입니다. 이렇게 코딩한 페이지를 다른사람에게 공유해 줄 수 도 있는 사이트 입니다. 간단한 코디의 경우 로그인 없이 비회원도 사용할 수 있기 때문에 간단히 사용하기에 부담이 없습니다. 말보다는 먼저 아래의 스샷을 확인해 볼까요? HelloWorld 를 쓸데없이 길게 써봤습니다.왼쪽 에디터에 코딩을 하고 실행을 하면 컴파일 후 실행하게 됩니다. 그리고 그 결과 값은 오른쪽에 나타나게 됩니다. 에디터에서는 위에서 볼 수 있 듯이 간단한 하이라이트가 지원되며, 간소한 자동완성 또한 지원합니다. 코딩에 필요한 최소한의 기능들은 지원한다고 볼 수 있습니다. ( vim 모드도 지원함..

개발/Tools 2017.08.29

[Android] NDK에서 java method를 호출할 때 type에 대한 정리

이 부분도 한동안 안쓰면 자주 잊어버리는 부분이라 정리해 둡니다. Signature Java Type Z boolean B byte C char S short I int J long F float D double L fully-qualified-class fully-qualified-class ex) Ljava/lang/String String [ type type[] ( arg-types ) ret-type method type sample codejava method static long normalMethod(String str, int[] intArray, boolean b); NDK (jni) JNIEXPORT void JNICALLJava_com_test_nativeMethod(JNIEnv *..

[Android] NDK(jni) 에서 Asset에 접근하는 방법

NDK를 쓰다보면 Asset에 접근해야 하는 경우가 심심치 않게 발생하는데, 일시적으로 만들어놓고 돌려쓰는 부분이다보니.. 잘 잊어먹게 되는 부분입니다.간단하게 정리를 해보도록 하겠습니다. Javapublic class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); readAssetsNative(getAssets()); } public native void readAssetsNative(AssetManager assetManager); static { System.loadLibrary("testNDK"); } } NDK#in..