목록전체 글 (61)
똥그래미 코딩공장
https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 테크닉이 필요한 문제이다. 아마 대부분 정답을 찾아도 틀리분들은 테스트 몇개가 통과가 안됐을 것이다. 그 이유는 바로 소수를 검증하는 과정에서 문제가 있는것일거다. 필자의 경우 예를들어 24 라는 수를 소수인지 검증하기 위해 1부터 24까지 반복문을돌려 하나씩 나눠가며 소수를 판단했다. 이런 방식으로 소수를 검증했다면 "틀린다." 이유는 1부터 24까지 수를 다 넣어가며 소수를 검증하는..
https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 브루트 포스 유형과 그래프 탐색이 섞인 문제이다. 가장 오래 걸리는 거리의 시작과 끝이 보물이 묻혀 있는 지점이므로 요소가 'L' 인 지점을 만날때 마다 그래프 탐색을 해주어 시간을 계산하고 가장 높은 시간의 요소가 정답이 된다. 그렇게 까다로운 문제는 아니였다. 아래는 풀이 코드이다. import sys from collections import deque input = sys.stdin.readl..
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 와 3차원 리스트를 쓰는 문제는 처음봤다...;; 도저히 안되서 다른 분들의 코드를 참고했는데 3차원 리스트를 사용해서 풀이를 진행했다;; 이건;; 진짜 생각도 못했다. 코드의 흐름을 보면 비슷하게 따라갔는데 3차원을 하지 않아 못풀어내고 있었다. 이제는 좀 풀 수 있을거 같다. 오늘도 새로운걸 배워간다. import sys from collections import de..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 백트래킹, 구현 문제이다. 문제를 보고 "오? 할만한데?" 생각으로 덤볐다. 근데 막 좌절한 정도는 아니고 for문이 많이 들어가다 보니까 순서를 잡고 어느 for문에서 변수를 초기화 하는지를 생각하는게 오래 걸렸다. 결론적으로 "할만했다" 앞으로 난이도가 높은 문제에 자주 부딪힐 생각이다. 취준이 얼마남지 않았기 때문이다... 아래는 풀이 코드와 설명이다. import sy..
https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 오랜만에 골드 문제를 건드려봤다. 요즘 그래프 관련 문제를 안푼지 오래되서 감 좀 살릴겸 건드려봤는데 조금 어려웠다. 그래도 맞았다고 떠서 다행이였다. 또 답안을 봐야하나 싶었지만... 결국 풀어내긴 했다. 하지만 python3로 맞추고 싶었는데(34%에서 시간초과가 떴다...) pypy3로 맞추게 되었다. 질문게시판에 질문도 올려봤는데 pypy3로 맞춰도 된다는 말만 나오고 코드에 관해 시..
https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 요즘 구현, 백트래킹, 브루트포스에 관한 문제를 풀어보고 있는중이다. 해당 유형의 코딩테스트 문제가 많이 나오고 있는 추세인거 같다. 그래서 최대한 많은 유형의 문제를 풀어보려고 하는 중이다. 아무래도 완탐,다이나믹 프로그래밍 등 언급한 분야들에 약하다 보니 약점을 커버 하기 위해 문제를 풀어보는 중이다. 이 문제도 그래서 풀어 보았다. 아래는 풀이 코드이다. import sys input = sys.stdin..
https://www.acmicpc.net/problem/2529 2529번: 부등호 여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력 www.acmicpc.net 이 문제는 처음에 쉽게 생각했다. 지금까지 풀었던 문제들과 크게 다를게 없구나 하고 막힘없이 풀어 갔다. 그리고 예제들을 돌렸을때 잘 나오길래 오 됐다!! 하고 제출을 했는데... "시간초과" 가 떠버렸다... 그래서 pypy3로 돌려봤는데 여기선 정답이 떴다. 하지만 python3로 정답이 떠야 하기 때문에 다시 풀어보려다 실패하고 결국 다른 사람의 풀이를 참고하게 되었다. 아래는 풀이 코드이..
https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 이 문제를 보고 "어?! 다익스트라로 풀면 되겠네" 하고 바로 다익스트라로 풀었는데 시간초과가 나와버렸다. 즉, 알고리즘 선택이 잘못된 것이였다. 그래서 dfs겠는데 하고 풀어보려 했지만 결국 풀 수가 없었다. 그래서 결국 구글링을 해보던 도중에 접근 방법을 알게됐다. 우선, 그래프의 특징을 알아야 한다. 트리의 노드중 아무거나 하나 선택한다. 그리고 그 노드로부터 가장 먼 거..