문제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
Algorithm
문제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..
배열같은 자료형의 변수로 이루어진 element(요소)가 모여 직선 모양으로 줄지어 있는 자료구조이다자료형 배열이름[요소개수];int a[5]; // a는 요소의 자료형이 int형이고 요소 개수가 5개인 배열요소 개수는 상수만 사용할 수 있음.int a[5]; -> ( a[0],a[1],a[2],a[3],a[4] )요소와 인덱스배열의 개별 요소에 접근하기 위해 정수형 인덱스를 사용함. 첫 번째 배열 요소의 인덱스는 0부터 시작한다.위와같이 배열 a는 int형이기 때문에 각각의 요소또한 int형이다. 배열의 요솟값 초기화 후 배열 선언 배열에 각 요소에 넣을 값을 미리 알고잇으면 선언할때 초기화(initializer)할 수 있다.#include int main(void) { int i; int ..
Time complexity(시간복잡도)시간복잡도란 어떠한 크기의 입력값 n에 대해 알고리즘을 수행하는 동안 (시간) 몇 번의 연산을 실행했는지를 점근 표기법을 이용해 나타낸것이다. 예를 들어 1부터 n(100)까지의 합을 구하는 프로그램을 작성해본다면#include int main() { int n , result =0; scanf("%d",&n); for (int i = 1;ifor문을 사용해 result에 1부터 100까지의 값을 넣는 방법과#include int main() { int n , result =0; scanf("%d",&n); result = n*(n+1)/2; printf("%d",result); return 0;}1부터 n까지 자연수들의 ..
What is Algorithm?알고리즘(Algorithm)이란 무엇인가?알고리즘이란 어떤 문제를 해결하는 방식이라는 뜻이다.간단히 우리 일상속에서 알고리즘이 사용되는 예시를 살펴보자면 대표적으로 길찾기 (내비게이션)이 있다. 우리집에서 학교까지 가는 경로는 무수히 많을 것이다. 하지만 무수히 많은 경로중 우리는학교까지 가장 빠르게 갈 수 있는 경로로 가야한다.이때 최단 경로 알고리즘을 사용하면 단 몇초만에 해답을 얻을 수 있다. Study plan알고리즘 공부 목차는 크게 시간복잡도,정렬 ,완전탐색 , 정수론분할정복,이분탐색 ,스택,큐,우선순위 큐그래프,BFS,DFS,위상정렬동적 프로그래밍 ,그리디 순으로 공부해보려고 한다. (순서는 조금씩 바뀔 수도 있음)
문제- 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