목록파이썬 (3)
세상의 모든 알고리즘
https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr math의 sqrt라는 제곱근을 구하는 함수를 사용했습니다. 이 문제의 핵심은 제곱근을 구했을때 정확히 딱 떨어졌는지를 확인하는 것을 조건문으로 사용하는 것입니다. 초기에는 type함수를 사용해 정수값이면 출력해주려 했으나 sqrt함수를 사용하면 float 형식으로 바뀌어 불가능 합니다. 두번째 시도에는 아래처럼 int를 사용해 소..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 이전 이코테 책에 수록된 문제가 백준에 있어 다시한번 풀어보는 시간을 갖게 되었습니다. 책을 통해 문제를 풀때는 시간제한이 없어 쉽게 느껴졌지만, 이번 문제 같은경우 1초의 시간제한이 있어 input() 함수를 -> 좀더 시간이 효율적인 sys.stdin.readline() 함수로 교체해서 사용했습니다. import sys input = sys.stdin.readline from collections import deque n,..
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 지금까지 BFS 문제를 풀때 하나의 시작점에서 출발해 문제를 푸는 방식이였다면 이번 문제는 두군데 시작부터 그 이상의 시작점을 통해 탐색을 진행하는 문제였습니다. 처음에는 이중포문을 통해 1인 시작점을 구하고 그 좌표를 함수로 전달해서 탐색하는 방법으로 구현하려 했으나 하나의 시작점이 전달되었을때 바로 모든 값이 변경돼 다른 시작점이 투입되도 결과가 변경되지 않는 문제가 발생했습니..