목록전체 글 (265)
SW
0. 제목 백준 1697 숨바꼭질 BOJ 1697 숨바꼭질 파이썬 1697 숨바꼭질 Python 1697 숨바꼭질 1. 문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 �� www.acmicpc.net 2. 풀이 현재 위치가 N이라고 할 때 이동가능한 지점은 N + 1, N - 1, 2*N 이다. 가장 빠른 시간을 찾기위해 bfs를 사용한다. 가장 먼저 현재 위치 좌표를 deque(덱, 큐의 앞과 뒤에서 삽입과 삭제가 가능한 큐)에 넣는다...
0. 제목 백준 1260 DFS와 BFS BOJ 1260 DFS와 BFS Python 1260 DFS와 BFS 1. 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 2. 풀이 dfs의 경우 인접한 정점들을 차례로 탐색할 수 있도록 재귀를 사용한다. bfs의 경우 deque를 사용한다. 탐색을 마치면 pop을 하고 인접한 정점 중 방문하지 않았던 점은 append로 deque에 추가해줌으로써 deque가..
0. 제목 백준 2110 공유기 설치 BOJ 2110 공유기 설치 Python 2110 공유기 설치 1. 문제 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (1 ≤ xi ≤ 1,000,000,000)가 � www.acmicpc.net 2. 풀이 이진탐색을 사용하는 문제이다. 두 공유기 사이 거리의 최대값과 최소값을 가장 먼저 구하고 중간값을 구해가며 정답을 구한다. 중간값을 구할 때마다 설치 가능한 공유기 개수를 구한다. 설치 가능한 공유기 개수와 입력받은 공유기..
0. 제목 백준 1874 스택 수열 BOJ 1874 스택 수열 Python 1874 스택 수열 1. 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 2. 풀이 스택에 원소를 삽입할 때는, 단순히 특정 수에 도달할 때까지 삽입하면 된다. 스택에서 원소를 연달아 빼낼 때 내림차순을 유지할 수 있는지 확인한다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11..
0. 제목 백준 1302 베스트 셀러 BOJ 1302 베스트 셀러 Python 1302 베스트 셀러 1. 문제 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 2. 풀이 등장 횟수를 계산할 때는 Dictionary 자료형을 이용하면 효과적이다. books라는 Dictionary를 선언하고, book을 입력 갯수만큼 입력받는다. 입력받으면서 딕셔너리에 저장하고 갯수를 1 증가시킨다. Dictionary에 이미 있는 이름이면 1 증가시켜주고..
0. 제목 백준 1236 성 지키기 BOJ 1236 성 지키기 Python 1236 성 지키기 1. 문제 https://www.acmicpc.net/problem/1236 1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net 2. 풀이 2차원 배열로 생각하여 풀면 되는 문제이다. 가장 먼저 n행, m열의 2차원 배열에 모두 0을 넣는다. 2차원 배열을 탐색하면서 X가 있는 곳에 1로 갱신한다. 그 후, 행과 열 각각 탐색하며 원소가 0인 경우 각각의 숫자(필요한 경비원 수)에 1씩 더한다. 행에서 필요한..
0. 제목 백준 1668 트로피 진열 BOJ 1668 트로피 진열 Python 1668 트로피 진열 1. 문제 https://www.acmicpc.net/problem/1668 1668번: 트로피 진열 민식이는 “오민식”이라는 팀이름으로 수없이 많은 로봇대회를 우승했다. 따라서 민식이의 집에는 트로피가 많다. 민식이는 트로피를 어떤 선반 위에 올려놨다. 이 선반은 민식이의 방문을 열 www.acmicpc.net 2. 풀이 첫번째 원소부터 탐색을 시작한다. 탐색을 하다가 현재 위치의 원소보다 큰 원소가 나오면 보이는 갯수를 1 증가시킨다. 최대값을 큰 원소로 갱신시킨다. 오른쪽에서 봤을 때의 개수를 알기 위해서는 reverse()를 이용하여 배열을 역순으로 만든 후 함수에 인자로 넣어주면 된다. 3. 코드..
0. 제목 백준 1568 새 BOJ 1568 새 Python 1568 새 1. 문제 https://www.acmicpc.net/problem/1568 1568번: 새 N마리의 새가 나무에 앉아있고, 자연수를 배우기 원한다. 새들은 1부터 모든 자연수를 오름차순으로 노래한다. 어떤 숫자 K를 노래할 때, K마리의 새가 나무에서 하늘을 향해 날아간다. 만약, 현�� www.acmicpc.net 2. 풀이 반복 조건을 구한 후, 반복문 내에서 조건 검사를 하면된다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 n = int(input()) cnt = 0 k = 1 while n != 0: if(k > n): k = 1 n -= k k += 1 cnt += 1 print(cnt)
0. 제목 백준 1543 문서 검색 BOJ 1543 문서 검색 Python 1543 문서 검색 1. 문제 https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한� www.acmicpc.net 2. 풀이 문자열 비교 중 단어가 문서의 범위를 넘어가면 안되므로 문서의 길이에서 시작인덱스를 뺀 값이 단어의 길이보다 크거나 같은 경우 반복문을 수행한다. 검사시작 index에서부터 단어의 길이만큼 문자열과 단어가 같으면 일치개수를 1증가시키고 검사 index를 단어길이만큼 증가시킨다. 단어가 ..
55. 테스트 케이스 / 테스트 시나리오 / 테스트 오라클 ★★ 1. 테스트 케이스(Test Case) - 명세 기반 테스트의 설계 산출물이다. - 가장 이상적인 테스트 케이스를 설계하려면 시스템 설계 시 작성해야 한다. 2. 테스트 케이스 작성 순서 - 테스트 계획 검토 및 자료 확보 -> 위험 평가 및 우선순위 결정 -> 테스트 요구사항 정의 -> 테스트 구조 설계 및 테스트 방법 결정 -> 테스트 케이스 정의 -> 테스트 케이스 타당성 확인 및 유지 보수 3. 테스트 시나리오 - 여러 개의 테스트를 집합으로, 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서이다. - 테스트 시나리오에는 테스트 순서에 대한 구체적인 절차, 사전 조건, 입력 데이터 등이 설정되어 있다. - 테스트 시나리오를 통해..