배열같은 자료형의 변수로 이루어진 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/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/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] = ..
문제- https://www.acmicpc.net/problem/1251풀이부루트포스 알고리즘을 이용하여 세 단어로 쪼갤 수 있는 모든 경우의 수를 실행하고나눠진 단어를 뒤집어 주어 list에 저장한다 그리고 sorted()를 사용해 사전순으로 정렬해주고 출력해준다.코드string = input()answer = []for i in range(1,len(string)): #for문으로 세 단어로 나눈다 for j in range(i+1,len(string)): front = string[:i][::-1] #[::-1] : 문자열 거꾸로 뒤집기 mid = string[i:j][::-1] end = string[j:][::-1] answer.ap..