Algorithm/BOJ

문제https://www.acmicpc.net/problem/5622풀이숫자 1을 걸라면 총 2초가 필요하다. 1보다 큰 숫자를 걸라면 1초씩 더 늘어나기 때문에 시작은 3초부터. 알파벳 별로 (ABC는 3초 , DEF는 4초) 시간을 배열에 저장 후 (문자 - 'A')로 인덱스 접근하여 ans에 시간을 더해주면 정답.코드#include using namespace std;int main() { int time[26] = { 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10 }; int ans = 0; string str; cin >> str; for(int i = 0; i
문제https://www.acmicpc.net/problem/2908풀이A,B를 getline으로 입력받고 (문자열) 공백으로 A B를 나누어준다음 reverse를 사용해 뒤집어준다. 그리고 형변환으로 int형으로 변환해준다음 비교해서 큰 수를 출력한다.[ 다 풀고 다른 풀이를 확인해보니 A B를 문자열로 입력받는것까지는 같지만 본인보다더 쉽게 풀이한 코드가 있어 추가적으로 첨부해봄 / String은 index 접근이 가능해서 그냥 역으로 돌리고 저장하면 끝...  ]   코드#include #include #include using namespace std;int main() { string a,b; string num; getline(cin,num); stringstream nu..
2557https://www.acmicpc.net/problem/2557#include using namespace std;int main(void) { cout 1000https://www.acmicpc.net/problem/1000#include using namespace std;int main(void) { int a,b; cin >> a >> b; cout 1001https://www.acmicpc.net/problem/1001#include using namespace std;int main(void) { int a,b; cin >> a >> b; cout 10998https://www.acmicpc.net/problem/10998#include using..
문제- https://www.acmicpc.net/problem/1141풀이 & 코드import sys input = sys.stdin.readline#sys.stdin.readline을 사용해 속도 저하로 인한 시간 초과 방지n = int(input())str = [(input()).rstrip() for _ in range(n)]#rstrip : 문자열에 오른쪽 공백이나 인자가된 문자열의 모든 조합 제거str.sort(key=len)#다른 단어의 접두사가 되는 단어는 다른단어보다 크기가 작거나 같음#문자열의 길이가 짧은 순서대로 정렬, 자기 위치보다 뒤에있는 단어와 비교res = 0#for문으로 단어 checkfor i in range(n): flag = False #현재 단어보다 길이가 ..
문제- https://www.acmicpc.net/problem/11047풀이입력으로 들어온 동전들을 사용하여 K원을 만드는데 필요한 동전 개수의 최솟값을 출력하는 것이 목적이다 최적의 해를 구하기 위해선 가장 큰 화폐단위부터 거슬러주면 된다. n원을 거슬러줘야할 때 가장 큰 금액으로 거슬러 줄 수 있을만큼 거슬러 주고, 그 다음으로 큰 숫자만큼 거슬러주면 된다코드def solve(k): cnt = 0 for i in coin: if k >= i: cnt += k//i k %= i if k
문제 - https://www.acmicpc.net/problem/17219풀이먼저 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 다음줄부터 사이트 주소와 비밀번호를 입력받는데 이때 딕셔너리를 사용해주소를 key , 비밀번호를 value로 하여 받아준다. 이후 찾으려는 사이트 주소들을 하나의 list에 담아주고for문을 통해 list 값을 하나씩 가져와서 딕셔너리의 key와 일치하는 값이 있으면 해당 key의 value를 출력해주면된다. 코드n,m = map(int,input().split())web = {}url_li = []for _ in range(n): url,pw = input()...
문제- https://www.acmicpc.net/problem/1764풀이듣도 못한 사람의 수 N , 보도 못한 사람의 수 M을 입력받는다둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과 N+2째 줄부터보도 못한 사람의 이름을 입력받는다.여기서 두개의 명단에는 중복되는 이름이 없어야하는데 때문에 중복을 허용하지 않는다는특징을 가진 집합형 자료구조 set을 떠올려주면 된다.set d(듣도 못한 사람) ,b(보도 못한 사람)를 선언해주고 앞서 말한대로 입력 받는다.그 후 for문을 사용해 듣도 못한 사람의 명단과 보도 못한 사람의 명단에 모두 이름이 있는 이름을 result list에 담아주고 sort를 사용해 사전순으로 정렬해준 후 출력해준다.코드n, m = map(int,input().split(..
문제- https://www.acmicpc.net/problem/17219풀이먼저 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번호가 공백으로 구분되어 입력 받아야한다이후 N+2번째 줄부터 M개의 줄에 걸쳐 비밀번호를 찾으려는 사이트 주소를 입력 받는다앞서 주소와 비밀번호가 매칭되어있다는점에서 key와 value를 떠올리고딕셔너리를 사용할 수 있다는 생각을 하면된다 for문을 통해 M번동안 돌면서M개의 사이트 주소 (key)을 대조하고맞는 key가 있으면 key에 대한 value(비번)을 출력해주면 된다. 코드n,m = map(int,input().split())web = {}url_li = []for _ in range(n): url,pw = input().split() web[url] = ..
danielkim_216
'Algorithm/BOJ' 카테고리의 글 목록