[백준] 1100번 하얀 칸 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 풀이 단순한 구현입니다. range의 파라미터를 이용해서 풀어주었습니다. # 1100번 하얀 칸 graph = [] cnt = 0 for _ in range(8): graph.append(list(input())) for i in range(0, 8, 2): for j in range(0, 8, 2): if graph[i][j] == "F": cnt += 1 for i in range(1, 8,..
[백준] 1032번 명령 프롬프트 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 풀이 다수의 문자열이 주어지며 각 문자열의 자리에 위치하는 문자가 모두 동일하면 그대로 출력하며, 틀리다면 ?로 출력한다. # 1032번 명령 프롬프트 import sys input = sys.stdin.readline t = int(input()) word = [] for i in range(t): word.append(input().rstrip()) n = len(word[0]) ans ..
[백준] 15650번 N과 M (2) - 파이썬
·
백준/DFS&BFS
https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 백트래킹 알고리즘에 대해 배울 수 있는 N과 M 시리즈의 2번째 문제입니다. 1번째 문제와 달라진 점은 start 인자를 넣어주어서 for문에서 현재 arr들어가있는 숫자보다 작은 숫자는 들어가지않게 해주는 코드입니다. # 15650번 N과 M (2) n, m = map(int, input().split()) arr = [] def dfs(start): if len(arr) == m: pr..
[백준] 15649번 N과 M (1) - 파이썬
·
백준/DFS&BFS
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 DFS의 일종인 백트래킹 알고리즘입니다. 사실상 백트래킹은 구현문제에 가깝습니다. 생각하기는 쉬우나 코드를 제어해주는 부분을 막상 작성하려하면 마음처럼 되지않을 경우가 많습니다. 아래 코드는 arr에 숫자를 하나씩 넣어줘서 조건에 만족하는 m이 나올 경우 출력해주는 코드이며, for문을 통해 arr에 들어가지않은 코드를 찾아줍니다. 재귀와 백트래킹에 대한 이해도가 요구되는 문제입니다. # ..
[백준] 1075번 나누기 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/1075 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 단순한 구현이다. 코드를 읽어보면 이해 할 것이다. # 1075 나누기 n = int(input()) f = int(input()) n = (n - n % 100) for i in range(n, n+100): if i % f == 0: print("".join(str(i)[-2:])) break 출력결과
[Python] 넘파이 numpy
·
Dev Lang/Python
딥러닝을 익히기 위해 익혀야 할 라이브러리인 numpy, panas, matplotlib를 공부 중 입니다. 오늘은 numpy에 대해서 공부해보겠습니다. Numpy는 C언어로 구현된 파이썬 라이브러리이며, 고성능의 수치계산을 위해 제작되었다. Numerical Python의 줄임말이기도 한 Numpy는 벡터 및 행렬 연산에 있어서 매우 편리한 기능을 제공합니다. 파이썬은 동적언어이기에 처리속도가 정적언어에 비해 떨어질 수 밖에 없기에 정적언어인 C언어를 부분 이용해서 구현이 가능합니다. numpy 가져오기 numpy를 가져올 때 np로 가져오는 경우가 훨씬 편리합니다. 물론 불편하지않다면 numpy를 그대로 써도 좋습니다.본 글에서는 np로 호출 받은것을 가정하고 글을 쓰겠습니다. # np로서 호출 받기..
[백준] 1065번 한수 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 풀이 1 주어진 자연수가 자릿수 2 이하이면 등차수열 조건을 만족한다. 자릿수가 3 이상인 경우에는 자릿수가 1 차이나는 숫자끼리 차이가 같은지 확인한다. # 1065번 한수 n = int(input()) cnt = 0 def check(standard): for j in range(1, len(word)-1): if (int(word[j]) - int(word[j+1])) != standard: r..
[백준] 2610번 회의준비 - 파이썬
·
백준/최단거리
https://www.acmicpc.net/problem/2610 2610번: 회의준비 첫째 중에 회의에 참석하는 사람의 수 N이 주어진다. 참석자들은 1부터 N까지의 자연수로 표현되며 회의에 참석하는 인원은 100 이하이다. 둘째 줄에는 서로 알고 있는 관계의 수 M이 주어진다. 이 www.acmicpc.net 풀이 문제풀이에 BFS와 플로이드와샬 알고리즘을 사용해주었다.BFS => 위원회의 개수를 세는데 사용플로이드 와샬 => 최단경로 계산 BFS는 우리가 BFS 사이클 문제를 많이 풀어왔다면 문제없이 해결 할 수 있었을 것이다.플로이드 와샬 또한 우리가 양방향 그래프이며 노드간의 직접적인 의사전달이 가능하다면 비용 1을 넣어주었다. 문제는 출력문을 뽑아주는것인데 다음단계를 거쳐 출력했다. 1, BF..
개발자 성현