전체 글 썸네일형 리스트형 [18111] 마인크래프트(python) 1. 문제 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 2. 구현 과정 - 완전 탐색으로 처음 풀었더니, 시간 초과가 났다. 500*500*256이 파이썬에선 1초가 넘어가는 걸 처음 알았다.. C++만 풀어왔던 나에겐 다소 충격(저 크기가 초과가 난다고?)이었고, 앞으로는 주의해서 풀어야 겠다. - 완전 탐색에 실패해서 그 다음 이분 탐색으로도 고민을 해 보았지만, 답을 구하려는게 최소-최대 높이가 아닌 최소 소요시간 이라는 점에서 정확.. 더보기 [Lv2] 거리두기 확인하기(python) 1. 문제 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 2. 접근 방법 1) 모든 인원끼리의 맨해튼 거리가 2 이하인지 확인 => 각 .. 더보기 수학 1. 순열 / 조합 1) 순열 : permutations(배열 이름, r) - from itertools import permutations - 배열의 원소 중 2개 뽑아서 출력하기 : for i in permutations(배열 이름, 2): print(i) - 배열의 원소 중 2개 뽑아서 리스트 만들기 : list( map(''.join, permutations(배열이름,2) ) 2) 중복 순열 : product(배열 이름, repeat= r) - from itertools import product - 배열의 원소 중 2개 뽑아서 출력하기 : for i in product(배열 이름, repeat = 2): print(i) - 배열의 원소 중 2개 뽑아서 리스트 만들기 : list( map(''.j.. 더보기 [Lv2]괄호 변환(python) 1. 문제 2. 구현 과정 - 정말.... 이 문제만 보면 그렇게 졸음이 와서(?) 문제 이해하는데 오래 걸렸다.. 문제 이해하는 데 대부분의 시간을 소요한 것 같다. - 구현 방법은 이미 문제에서 다 정의해줬고, 특별한 알고리즘을 사용하는게 아니라 재귀 함수를 만드는 거라 특정 알고리즘에 대해 고민할 필요는 없었다. 문제를 제대로 이해하는 게 핵심인 것 같다. - 구현의 흐름은 문제에서 정의했지만 중요한 건 "왜?" 저렇게 구현해야 하는지 인데, 큰 흐름은 다음과 같다. 1) 문자열을 균형잡힌 문자열( U ) 와 나머지 문자열 ( V ) 로 나눔 2) U가 올바른 문자열이 아니라면, 'U'의 시작 문자는 ')', 마지막 문자는 '('일 것이다! 균형 잡힌 문자열이면서 올바른 문자열이 아니다 = '('와.. 더보기 [이것이코딩테스트] 게임 개발(python) 1. 문제 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 x 1 크기의 정사각형으로 이뤄진 N X M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭 터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨 어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 매뉴얼은 이러하다. 1. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 2. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으.. 더보기 python 에러 모음 하도 별의별 에러를 만들길래 이참에 모아보는 에러들.. 1. SyntaxError: invalid syntax - 원인: 파이썬에선 사용하지 않는 문법 사용함 - 해결법: 오류난 문법 위치를 찾아 수정 - 내 경우 에러났던 원인들 * if문에서 : 빼먹음 * 오류난 바로 앞부분에서 () 개수 잘못 맞춤 2. ValueError: not enough values to unpack (expected 2, got 1) - 원인 : 패킹된 변수의 수와 언패킹할 변수의 수가 같지않을 때 발생 * 패킹 : 변수하나에 여러개의 값을 담는 것 * 언패킹 : 패킹된 변수안의 값을 여러개의 변수로 나누는 것 - 해결법: 변수와 값의 개수를 동일하게 맞춰줘야 함 - 내 경우 에러났던 원인들: 입력으로 받는 input이 띄어.. 더보기 [Lv2] 행렬 테두리 회전하기(python) 1. 문제 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 2. 접근 방법 - 파이썬으로 푸는 방법이 생각이 안나서 다른 풀이를 보고 참고했음.... 얼른 파이썬 익숙해지자 흑흑 - 난 전체 배열을 복사하려 했는데, 한 개의 값만 저장해놓고 값을 뒤에서( 현재 값 기준 반시계 방향의 값)을 땡겨서 가져온 후 맨 마지막에 저장했던 값을 넣는 방식으로 푸는 방식도 있었다. 다음부턴 다른 풀이 참.. 더보기 [1654] 랜선 자르기(python) 1. 문제 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 2. 접근 방법 * 문제 이해 - 길이가 다른 k개의 랜선을 잘라서, N개 이상의 같은 길이 랜선들로 만들 때 (자르고 남는 대상은 버림) 만들 수 있는 최대 길이 * 접근 순서 1) 최대 길이 찾기(최적의 길이 찾기) : 최적 해를 구하는 것이므로 탐색(?)의 느낌이 남... 탐색에서 가장 대표적인 예시는 이분 탐색! 2) 탐색 시작 방향 구하기 : 가장 .. 더보기 이전 1 ··· 6 7 8 9 10 11 12 ··· 15 다음 목록 더보기