Algorithm/BOJ(42)
-
[python 파이썬] 백준 4963번 섬의 개수
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 처음 딱 접했을 때 문제는 "이것이 취업을 위한 코딩테스트다"에 실린 음료수얼려먹기 문제와 유사했다. 하지만 조금 다른 점이 있다. 핵심 1. 덩어리 개수를 구할 것 2. 상하좌우로 움직일 수 있을 뿐만 아니라 대각선 방향으로도 움직일 수 있다. 음료수얼려먹기 문제가 dfs로 풀려서 나도 dfs로 처음에 구현했다. 근데 여론을 보니 dfs와 bfs 모두 가능하다고 한다. 따라서 두가지 방법으..
2021.05.13 -
[python 파이썬] 백준 2312번 수 복원하기
www.acmicpc.net/problem/2312 2312번: 수 복원하기 첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net 문제풀이법 1) 소인수분해하는 코드 num = int(sys.stdin.readline()) su = 2 # 검사할 첫 값 so = [] # 소인수 저장할 리스트 변수 while su collections 라이브러리의 Counter 함수 사용하여 dictionary 형태로 값을 받고 반복문으로 출력한다. dict = collections.Counter(so) for key in dict: print(key, dict[key]) 참고자료 1. 소인수분해 blog.daum.net/s..
2021.05.08 -
[python 파이썬] 백준 5347번 LCM
www.acmicpc.net/problem/5347 5347번: LCM 첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다. www.acmicpc.net 최소공배수 구하는 문제이다 라이브러리를 사용하면 쉽게 풀 수 있는 문제다 from math import gcd def lcm(x,y): return x*y // gcd(x,y) # 최대공약수 n = int(input()) for _ in range(n): a,b = map(int,input().split()) print(lcm(a,b)) brownbears.tistory.com/454 [Python] 최대공약수, 최소공배수, N개의 최소..
2021.05.08 -
[python 파이썬] 백준 2010번 플러그
www.acmicpc.net/problem/2010 2010번: 플러그 첫째 줄에 멀티탭의 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 이어서 둘째 줄부터 N개의 줄에 걸쳐 각 멀티탭이 몇 개의 플러그를 꽂을 수 있도록 되어 있는지를 나타내는 자연수가 주어진다. 이 자연 www.acmicpc.net 입력을 input() 으로 받으면 시간초과가 난다. 따라서 입력을 sys.stdin.readline()
2021.05.08 -
[python 파이썬] 백준 10610번 30
www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 30의 배수이려면 1) 일의 자리수가 무조건 0이어야함 2) 각 자리수의 합이 3으로 나누어 떨어져야함 n = list(input()) n.sort(reverse=True) sum =0 for i in n: sum += int(i) if sum%3!=0 or "0" not in n: print(-1) else: print("".join(n)) 새로운 개념) n = list(input()) 입력받은 문자열을 한자리..
2021.05.08 -
[python 파이썬] 백준 2875번 대회 or 인턴
www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 수학문제 여자가 2명이상일 때 남자가 1명이상일 때 팀에 참여할 3명을 제외하고 남는 인원이 k명 이상일 때 팀을 꾸리는 방법을 반복문을 사용해서 구현하면 된다. n,m,k = map(int,input().split()) team = 0 while n >=2 and m >=1 and n+m-3>=k : n -=2 m -=1 team +=1 print(team) blog.naver.com/baek2sm/221861500911
2021.05.08