백준 36

[백준] 24039 2021은 무엇이 특별할까? (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/24039 24039번: 2021은 무엇이 특별할까? 백준 온라인 저지의 송년대회 Good Bye BOJ, 2021!의 개최일은 2021년 12월 31일이다. 원이는 대회가 개최된다는 사실이 기뻐 제목을 뚫어져라 보다가 2021이 무언가 특별하다는 사실을 깨달았다. 그렇 www.acmicpc.net 작성코드 풀이 1) 소수 리스트 만들기 ※ 소수의 특징 : 나누는 수가 해당 숫자의 √N 이상일 경우 나누어 떨어질 수 없다. 이때문에 for 문을 √N 까지 반복하도록 하였다. 2) 인접소수와의 곱 중 N보다 큰 최소값 출력 리스트 인덱스 1부터 시작하여 이전 인덱스와의 곱이 N보다 큰 경우 rare 변수에 넣어주고 break 하므로서 가..

백준/Python 2022.11.07

[백준] 25707 팔찌 만들기 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/25707 25707번: 팔찌 만들기 N개의 구슬을 모두 사용하여 조건에 맞게 팔찌를 만들 때 사용하는 줄의 길이의 최솟값을 출력한다. www.acmicpc.net 작성코드 풀이 1) 리스트 정렬 숫자 사이의 거리 값의 합이 최소가 되게 하는 가장 쉬운 방법은 순차적으로 배치를 하는 것이다. 2) 인접한 숫자의 차 구하기 숫자 사이의 거리를 계산하기 위해 인접한 숫자의 차를 구한다. 배열을 역순으로 배치하거나 for문을 역순으로 처리해도 되지만 직관적인 이해를 위해 abs()를 사용하여 인접 숫자와의 차이를 구하여 count에 누적한다. count가 문제의 답인 줄의 최소 길이가 된다.

백준/Python 2022.11.07

[백준] 15649 N과 M (1) (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 작성코드 풀이 1. 백트래킹 알고리즘 일종의 트리 탐색 알고리즘이다. 현재 상태에서 모든 경로를 따라 뻗어나가다가 가능성이 없다 판단되면 되돌아가서 다시 해를 찾아간다. 알고리즘 구현 방식은 기본 DFS(깊이 우선 탐색) 방식과 동일하게 재귀 호출을 사용하여 노드를 찾는다. ※ DFS 방식 구현 (모든 경로를 탐색한다) 2. 구현 1) 숫자 범위 N과 수열 길이 M을 입력받는다, 탐..

백준/Python 2022.11.01

[백준] 2563 색종이 (python 파이썬)

문제 링크 : https://www.acmicpc.net/problem/2563 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net 작성코드 풀이 1. 기본 설계 1) 검은색 영역의 크기를 세려면 색종이의 겹친 부분을 제외한 검은색 영역을 찾아야한다. 2) 색칠된 영역을 좌표값으로 저장하여 중복된 부분을 제거한다. 2. 구현 1) 색종이의 갯수을 담아둘 N과 검은색 영역 좌표를 담아둘 black 배열을 생성한다. 2) 영역 좌표값을 black에 넣어준다. ※ 색종이 하나의 크기는 10*10 이므로 for 반복문으로 x,y ..

백준/Python 2022.11.01

[백준] 2566 최댓값 (python 파이썬)

문제 링크 : https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 작성코드 풀이 1) 최댓값을 저장해둘 Max 변수를 초기화 해준다. 2) 9개 줄을 입력받아 배열에 넣어준다. 3) Max에 현재 들어있는 Max 값보다 해당 줄에서 가장 큰 값이 클 경우 Max를 교체하고 인덱스 값을 받아오는 조건문을 작성한다 4) for 문이 모두 완료되면 print로 Max 값과 Max의 인덱스 값에서 + 1을 해준 값 (인덱스는 0부터 시작하므로 행렬 수 표현 을 위해)을 출력..

백준/Python 2022.10.31

[백준] 2738 행렬 덧셈 (python 파이썬)

문제 링크 : https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 작성 코드 풀이 1) 행렬의 크기를 지정해줄 N, M을 map 함수로 한 줄에서 입력받아준다. N*M의 행렬 값을 넣어줄 배열 A,B를 선언해준다. 2) A와 B 배열에 각각 N개의 리스트를 map함수로 받아 넣어준다. 3) 행렬 A, B의 원소들의 값을 합하여 출력한다. 행렬의 각 원소를 공백으로 구분하라는 조건이 있으니 end=' '로 처리해주었다. 한 행의 출력이..

백준/Python 2022.10.30