알고리즘 문제 풀이 124

[이코테] CH04 구현 실전문제 11번 뱀

https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 69560 29276 19627 40.455% 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 ..

[이코테] CH04 구현 실전문제 10번 자물쇠와 열쇠

https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열..

[이코테] CH04 구현 실전문제 9번 문자열 압축

https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 카카오 공채 코테 문제였다... 그래서 보통 1시간정도 고민하면 답지를 보지만 이건 할 수 있을 것 같았고 카카오 코테 풀면 다른 웬만한 기업 코테는 할만할테니 오기를 가지고,, 2시간동안 풀었다 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있..

[이코테] CH04 구현 실전문제 7번 럭키 스트레이트

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 def LUCKY(array): leftsum = 0 rightsum = 0 N = len(array) // 2 for i in range(N): leftsum += array[i] for j in range(N+1, len(array)): rightsum +=array[i] if rightsum == leftsum: print("LUCKY") else: print("READY") array = list(map(int,sys.stdin.readline().rstrip())) LUCKY(arra..

[이코테] CH04 구현 실전문제 3번 게임 개발

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 def findpath(x,y,way): count = 1 graph[x][y] = -1 flag = 0 way +=200 while True: visitcount = 0 for _ in range(4): nx = x + dx[(way-1)%4] ny = y + dy[(way-1)%4] if graph[nx][ny] == 0: graph[nx][ny] = -1 # 방문 처리 count +=1 flag = 1 visitcount +=1 x,y = nx,ny way -=1 if flag == 0:..

[이코테] CH04 구현 실전문제 2번 왕실의 나이트

꽤 쉬운 문제였다 이제 할 줄 알아야 하는건 파이썬에서 a를 0부터 시작 , b가 1 문자 -> 숫자 아스키코드 변환은 ord('a') 하면 97이 나온다 그래서 ord(elem[0]) - 97 해주면 a가 0 , b가 1 이렇게 추출할 수 있었다. import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 def findroad(): row = ord(elem[0]) row -= 97 col = int(elem[1]) - 1 count = 0 for i in range(8): nx = row + dx[i] ny = col + dy[i] if nx >..

[이코테] CH03 그리디 실전문제 5번 볼링공 고르기

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 N,M = map(int,sys.stdin.readline().split()) x = list(map(int,sys.stdin.readline().split())) x.sort() count = 0 for i in range(len(x)): for j in range(i,len(x)): if x[i]!=x[j]: count +=1 print(count) 처음에 보고 이렇게 쉽다고? 하면서 풀었는데 이러면 반복문이 총 len(x) * ( 1 + 2 + ... (len(x)-1)만큼 돌아가므로 메..

[이코테] CH03 그리디 실전문제 4번 만들수 없는 금액

import sys # sys.stdin.readline() from collections import deque sys.setrecursionlimit(100000000) import heapq INF = 1e9 N = int(input()) x = list(map(int,sys.stdin.readline().split())) x.sort() target = 1 for elem in x: if target < elem: break # 만들 수 없는 금액 target += elem print(target) 30분 고민하다가 그냥 답지 봤다 코드가 참 짧네..^^ 열심히 해야겠다. 로직은 이해했는데 이걸 다시 복습해야할 필요가 있을 듯 하다