본문 바로가기

Algorithm

(175)
[BOJ] 15683. 감시 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 1. 해결방법 이 문제는 시뮬레이션 문제이다. 주어진 상황을 차례로 코드로 구현시키면 되고 모든 경우를 찾아봐야 하므로 완전탐색 dfs 재귀를 사용해야 한다. 본인은 생각하지 못한 점인데 direction 각 cctv의 방향을 미리 리스트화 시키는 것이다. 그리고 dy, dx를 통해서 그래프의 상하좌우를 정해준다. direction에 원소 값들과 인덱스 위치 값을 stack에 appen..
[2020 KAKAO BLIND RECRUITMENT] 기둥과 보 설치 https://school.programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 틀린 풀이 # 틀린 풀이 def solution(n, build_frame): answer = [] def check(answer): for number in answer: x, y, a = number # 기둥이 설치될 조건 if a == 0: if y == 0 or [x - 1, y, 1] in answer or [x + 1, y, 1] in answer or [x, y - 1, 0] i..
[BOJ] 3190. 뱀 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 1. 해결방법 전형적인 시뮬레이션 구현 문제이다. 조건 자체가 있다보니 코드가 조금 길어져서 살짝 헤맸던 코드이다. 그래도 큰 어려움은 없었다. 1. 2차원 배열인 maps에 빈 공간은 0, 사과는 1, 뱀이 있는 곳은 2로 둔다. 2. 방향 정보를 turns 리스트에 정보를 담는다. 3. deque를 이용해서 큐를 만든다. 꼭 deque가 아니고 리스트를 사용하면 됨. 본인은 습관성 deque라서;;;..
[2020 KAKAO BLIND RECRUITMENT] 자물쇠와 열쇠 https://school.programmers.co.kr/learn/courses/30/lessons/60059# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 ..
[2020 KAKAO BLIND RECRUITMENT] 문자열 압축 https://school.programmers.co.kr/learn/courses/30/lessons/60057?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aab..
[이코테] 게임 개발 문제 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 X 1 크기의 정사각형으로 이뤄진 N X M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 매뉴얼은 이러하다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 횐전한 다음 왼쪽..
[2019 KAKAO BLIND RECRUITMENT] Lv.1 무지의 먹방 라이브 https://school.programmers.co.kr/learn/courses/30/lessons/42891?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 기본적으로 위와 같은 로직으로 흘러가는데, 본인은 크게 while 문으로 돌려서 종료 지점과 food_times의 인덱스 값이 0인 경우의 if 문 + while 문을 돌려서 네트워크 에러 발생 시 인덱스 위치 값을 반환하도록 하였다. 아마 2중 반복문을 사용해서 시간복잡도가 O(N^2)이기에 효율성 부분에서 문제가 있다고 생각한다. ..
[이코테] 숫자 카드 게임 https://github.com/ndb796/python-for-coding-test/blob/master/3/4.py GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소스코드 저장소입니다. - GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소 github.com 1. 해결방법 그리디 문제이다. 사실 해결방법 없이 그냥 풀면 된다. 2. 정답코드 import sys input = sys.stdin.readline N, M = map(int..