전체 글 21

[해커랭크 HackerRank] The PADS (Oracle)

The PADS | HackerRank The PADS | HackerRank Query the name and abbreviated occupation for each person in OCCUPATIONS. www.hackerrank.com Advanced Select 문제이다. CONCAT 함수를 따로 쓸 필요없이 || 연산자로 한 열로 만들어주면 된다. 직업별 COUNT 출력은 그냥 위에 문장 끝내고 새로 시작하면 된다!! SELECT NAME || '(' || SUBSTR(OCCUPATION,1,1) || ')' FROM OCCUPATIONS ORDER BY NAME; SELECT 'There are a total of ' || COUNT(OCCUPATION) || ' ' || LOWER(OCC..

카테고리 없음 2021.12.27

[백준 (BOJ)] 1405 - 미친 로봇 (Python)

1405번: 미친 로봇 (acmicpc.net) 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자 www.acmicpc.net 백트랙킹 문제이다. 로봇이 이동 횟수를 모두 채울 때까지 방문하지 않은 지점만 방문한다면, 해당 경로의 확률을 정답에 더해주면 된다. 이때 방문한 지점은 (2n + 1) * (2n + 1) 크기의 행렬을 만들어서 표시했다. 한 방향으로 최대 n번 갈 수 있기 때문이다. dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1] def dfs(x, y, cnt, p): global ans if cnt =..

Algorithm/Graph 2021.05.12

[백준 BOJ] 1520 내리막길 (Python)

1520번: 내리막 길 (acmicpc.net) 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net 다이나믹 프로그래밍 문제이다. 배열을 순차적으로 순회하는 게 아니라 사방으로 움직이며 연산이 진행되기 때문에, DFS/BFS + DP의 조합으로 문제를 풀어야 한다. 1. DFS: 현재 지점에서 접근할 수 있는 곳의 모두 경우의 수를 더해가며, 출발점으로 되돌아온다. dp를 0으로 초기화하면, 경우의 수가 0일 때와 혼동되므로 -1로 초기화한다. 현재 지점을 이미 방문했다면 더 DFS를 들어갈 필요 없이 현재 저장된 D..

[백준 BOJ] 11722 가장 긴 감소하는 부분 수열 (Python)

11722번: 가장 긴 감소하는 부분 수열 (acmicpc.net) 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 다이나믹 프로그래밍 문제이다. 두 가지 방식으로 풀 수 있다. 이중 for문: 현재 인덱스와 그 앞에 있는 모든 수를 비교한다. O(N^2) bisect 사용: 반복문 안에서 이진탐색을 수행한다. O(NlogN) 1. dp 배열에 현재 수를 포함해 만들 수 있는 수열의 길이를 저장한다. 앞에 있는 어떤 수가 현재 수 보다 ..

[해커랭크 HackerRank] Olivander's Inventory (Oracle)

Ollivander's Inventory | HackerRank Ollivander's Inventory | HackerRank Help pick out Ron's new wand. www.hackerrank.com JOIN 문제이다. 해커랭크는 문제 설명이 항상 좀 부족한 것 같다... 문제에는 NON-EVIL인 지팡이를 사는 데 드는 가장 적은 코인 수를 찾되, POWER와 AGE가 큰 지팡이 순으로 정렬하라고 되어있다. 이해가 안 돼서 풀이를 찾아보니, CODE와 POWER로 GROUP을 만들어 각 GROUP의 최소 코인 수를 찾아야 하는 것이었다. SELECT W.ID, P.AGE, A.COIN, W.POWER FROM WANDS W , WANDS_PROPERTY P , (SELECT CODE, ..

카테고리 없음 2021.04.17

2021 Dev-Matching 데브 매칭 코딩테스트 후기..

알고리즘 3개, SQL 1개로 총 네 문제였다. 제한시간은 두 시간 SQL은 기본적인 JOIN 개념만 알면 풀 수 있는 문제였다. 알고리즘은 다 시뮬레이션이었는데, 테스트케이스별로 채점이 돼서 정확도 점수를 알 수 있었다. 1번 문제는 어렵지 않았는데.. 케이스 하나가 틀려서.. 진짜 반례가 너무 궁금하다ㅠ 대체 뭐지 2번 문제는 풀긴 풀었는데 너무 더럽게 풀었음.. 3번 문제는 예제는 맞는데 테케를 다 틀려서 멘탈이 나갔닼ㅋㅋㅋㅋㅋㅋㅋ.. 2번에 시간을 너무 많이 써서 문제 다시 읽을 시간도 없었음... 하 시뮬은 정말.. 시간이 짧으면 난이도가 확 뛰는 것 같다..

카테고리 없음 2021.04.03

[해커랭크 HackerRank] SQL Project Planning (Oracle)

SQL Project Planning | HackerRank SQL Project Planning | HackerRank Write a query to output the start and end dates of projects listed by the number of days it took to complete the project in ascending order. www.hackerrank.com Advanced Join 문제이다. 주어진 테이블에 start_date와 end_date라는 컬럼이 있는데, 같은 행의 두 원소는 무조건 하루가 차이 난다. 이때, 연속하는 날짜의 행은 같은 프로젝트이다. 프로젝트가 시작하는 날짜와 끝나는 날짜를 찾고 걸린 기간에 따라 정렬하면 된다. 위와 같은 테이블은..

Algorithm 2021.04.03

[백준 BOJ] 5014 스타트링크 (Python)

5014번: 스타트링크 (acmicpc.net) 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net BFS 문제이다 엘레베이터를 타고 올라가든 내려가든 버튼을 누르는 횟수는 1로 동일하기 때문에 (=가중치가 1로 똑같기 때문에) 중복방문을 허용하지 않는 BFS 문제라고 생각하면 된다. 버튼을 눌러 얼마만큼 이동하느냐는 로직에 큰 영향을 주지 않는다. 범위만 넘어가지 않도록 설정해주면 된다. 가중치가 여러 개여서 중복방문을 허용하는 문제👇 2021.03.18 - [Algorithm/Graph] - [백준 BOJ] 13549 숨..

Algorithm/Graph 2021.04.02

[프로그래머스 Programmers] 괄호 변환 (Python)

코딩테스트 연습 - 괄호 변환 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 시뮬레이션, 재귀 문제 문제에 괄호를 변환하는 규칙이 차례대로 명시돼 있으므로, 차근차근 따라서 구현하면 된다. 오늘의 포인트 함수 중복 막기 괄호 뒤집는 기능을 map으로 구현 1. 처음에는 그대로 따라서 순서대로 구현했는데, 균형잡힌 괄호 u, v를 분리하는 함수와 올바른 괄호인지 검사하는 함수의 내용이 거의 비슷한 것을 발견했다. def balanced(w): flag = 0 ..

Spec Ops: The Line 리뷰

반전을 좋아하는 사람들은 가끔 부작용을 겪는다. 반전 콘텐츠의 맹점은 이미 반전이 있다는 걸 아는 시점에서 순수한 반전의 효과를 잃는다는 것이다. 그래서 취하는 행동이 소재나 줄거리에 최대한 노출되지 않은 상태에서 콘텐츠를 접하는 것인데... 반전성애자라도 감당하기 힘든 플롯은 분명 있다는 점이다... 그리고 이 게임은 바로 그 부작용에 해당되는 사례였다... 전쟁 게임?? 콜옵이나 배틀필드에도 반전 있잔아 ㅎㅎ 알지알지 딱 이 생각으로 켰다 그런데 시종일관 모든 장면들이 나의 가슴을 난도질한다.. 다음은 플레이 직후에 썼던 감상문이다. 이 게임은 전쟁을 통해 인간이 겪게 되는 윤리적인 고민과 외상 후 스트레스 장애라는 소재를 심도 있게 다루고 있다. 전쟁은 인간의 정신과 육체를 모두 벼랑 끝으로 내몰리..

Game 2021.03.20