본문 바로가기

프로그래머스13

[MYSQL] 프로그래머스 sql 쿼리 문제 후기 및 접근법 sql 문제를 처음 풀어보면서 내가 생각했던 대로 안되네? 어떻게 내부적으로 동작할까? 에 대한 의문에 대해 적어본다. 보통 데이터베이스 문제를 푼다라고 하면 insert, delete 이런 DML 보다는 데이터를 질의하는 SQL 을 물어본다. 그렇다. select 문으로 답을 구한다. 그러면 select 문을 수행할 때 어떤 순서로 수행 되는지 알아야 하는게 우선이다. 하지만 본인은 문제풀면서 순서를 감으로 알게 되었고 스택오버플로우에 똑같은 질문이 있어서 select 문에서 수행하는 순서에 대해 링크를 남겨본다. https://stackoverflow.com/questions/2617661/whats-the-execute-order-of-the-different-parts-of-a-sql-select.. 2020. 7. 30.
[JAVA/PYTHON] 자물쇠와 열쇠(kakao 2020) 파이썬이 역시 간결하긴하다. 그래도 자바공부중이니 자바로 열심히 풀어봤다. 문제를 접근하는 방법에 대해 고민을 많이 했다. 완전탐색으로 해도 될까했는데 대충 계산해본 결과 20*20 자물쇠와 20*20 키를 가지고 있다고 해도 시간초과는 나지 않을거 같았다. 그래서 완전탐색으로 풀기로 한다. 풀기위해서 메소드를 나누는데, 1) 키를 90도씩 돌리는 함수를 작성하기로 한다. 이는 rotate라는 이름으로 작성하였다. 2) 자물쇠 배열을 상하좌우 및 대각선까지 자물쇠 크기만큼 span한 새로운 자물쇠 배열을 초기화한다. 이를 spanLock이라는 이름으로 작성하였다. 3) 키와 자물쇠를 합쳤을 때 참인지 거짓인지 판별하는 check함수를 작성하였다. 4) span 되어있는 자물쇠에 키가 올수있는 모든 경우의.. 2020. 7. 26.
[JAVA] 문자열 압축 (kakao 2020) String 관련 문제를 해결하기 위해서는 Stringbuilder 를 쓰면 편하다는 글을 보고 시도해보았다. 내가 문제를 풀기 위해 공부했던 String 관련 도구들은 다음과 같다. 1) String 의 길이를 알기 위해서는 length() 메소드를 사용하면 된다. 2) String + String 보다는 Stringbuilder를 통해 append 하면 연산이 빠르다. 3) substring(시작위치,끝위치) 메소드를 이용해 문자열을 자른다. split 보다 권장되는 사항이라고 한다. 위 3가지를 이용해 쉽게 풀었다. 알고리즘은 다음과 같다. 1) i = 1, answer = s의 길이; 2) ( i < 문자열 길이의 반) 이라면 3번으로 간다. 아니라면 10)번으로 간다. 3) cnt =1 로 초기.. 2020. 7. 25.
[JAVA] 주식가격 - 프로그래머스lv2 파이썬으로 매일 풀다가 자바로 처음 도전했던 문제다. 처음 문제를 이해하지 못해서 한참 고민했지만 풀이방법은 매우 간단하다. [ 1, 2, 3, 2, 3 ] 배열이 주어졌을 때, 아래와 같은 과정을 거친다. (단, n=배열의 길이, i=0~n-1 ) 1) 해당 i 번째 인덱스의 값을 price 라는 변수에 저장한다. 그리고 cnt 라는 변수를 0 으로 초기화한다. 2) j= (i+1 ~ n-1 ) 이라고 하자. 루프를 돈다. 2-1) cnt 의 값을 증가시킨다. 2-2) 만약에 price 의 값보다 j가 더 작으면 루프를 탈출한다. 3) answer[i] 에 cnt 값을 저장한다. 아래는 소스코드 2020. 7. 25.