목록Language (35)
습관처럼
저는 보통 알고리즘을 풀 때 시간 복잡도를 제외하고 시간 초과가 발생하는 경우가 가끔 있는데 오늘은 이러한 점을 잠깐이라도 해결할 수 있는 방법을 알려드리도록 하겠습니다. 가장 먼저 C++ 에서 cout, cin 입출력은 printf, scanf 보다 효율성이 좋지 않습니다. 또한 소수 같은 경우 몇 번째 자리까지 표현을 해야 한다 라고 할 때 printf, scanf를 이용하는 것이 편할 것입니다. 하지만 일반적으로 코딩 테스트나 알고리즘을 혼자 풀어볼 때 빠르게 풀기 위해 저는 cin, cout를 이용하는 경우가 많습니다. 물론 경우에 따라서 바꿔가며 쓰는 것이 좋습니다 ^0^b 그렇다면 입출력에는 문제가 없지만 시간 초과가 발생하는 경우 다음 방법을 쓰면 조금이나마 입출력의 효율성을 증가시킬 수 있..
소수(Prime Number)는 약수로 1과 자기 자신만을 가지는 정수입니다. 정수론의 기본 정리에 의해 모든 자연수는 단 하나의 소수들의 곱으로 표현됩니다. 1. 기본적인 접근 소수는 1과 N만을 약수로 가진다. 그럼 2부터 N-1까지의 수로는 나눠져서는 안된다. #include using namespace std; int main(){ unsigned int num; cout > num; bool isPrime = true; // 2부터 N-1의 수로 나눠서 나눠지는 수가 있으면 반복문 종료 for (int i=2; i
저는 주로 vector를 사용하는데요~ vector에서 size를 계산할때는 vector.size()로 하죠? 하지만 Array는 다릅니다. 저도 오랜만에 C++ Array 길이를 구하려니 습관적으로 size()를 .... Array에서는 sizeof(array_name)/sizeof(int,or... type)와 같이 type의 사이즈로 나누어 계산을 합니다~ 예시는 아래에~^0^ 실수하지 마세요 ㅠㅠ ~ #include using namespace std; int main(){ int idx; int temp; int arr[7]={1,9,4,10,85,12,46}; for(int i=0;i
Range-based for statement(범위 기반 for문). #include using namespace std; int main(){ int temp[5]={1,2,3,4,5}; for(int i=0;i
알고리즘을 풀때 Sorting을 내림차순 또는 오름차순으로 하죠?~^^ 이때 보통 내림차순은 greater()를 사용하여 내림차순 또는 오름차순을 정의했습니다. 하지만 비교대상이 일차원을 넘을경우 어떻게 처리하는지 알아보도록 하겠습니다. Default 오름차순 Sorting - 오름차순으로 비교할때는 그냥 Sorting을 하면 됩니다~ #include #include #include using namespace std; int main(){ vectora; a.push_back(1); a.push_back(31); a.push_back(14); a.push_back(12); a.push_back(11); a.push_back(15); a.push_back(2); sort(a.begin(),a.end())..
N차원 배열 매개변수 설명을 간단히 해드리겠습니다. 일반적으로 일차원 어레이를 반환할 때는 다음과 같이 진행합니다. void print(int a[10]){ //bla~~~bla!! } int main(){ int k[10]; memset(k,1,sizeof(k)); print(k); } 2차원 배열도 다음과 같습니다 하지만 '[]'를 한번더 추가해준다 라고 생각을 해주시면 편합니다. 2차원 배열의 형태를 그대로 유지하면서 첫 번째 항목만 숫자를 적지 않고 [ ][숫자]의 형태로 배열을 넘겨받아서 그대로 사용하면 됩니다. void print(int a[][10]){ //bla~~~bla!! } int main(){ int k[10][10]; memset(k,1,sizeof(k)); print(k); } ..
1. input() 말고 sys.stdin.readline() 를 사용하자. 입출력 속도에서 많은 차이가 발생합니다. sys.stdin.readline() > raw_input() > input() input() 으로 코드를 제출할 시, 시간초과가 발생하지만, sys.stdin.readline() 으로 제출할 시 정답이 된다는 점입니다. 직접 실행해보면서 테스트 해보시길 바랍니다. a = [int(x) for x in input().split()] # a = [1, 2, 3, 4 ,5] import sys a = map(int, sys.stdin.readline()) # a = [1, 2, 3, 4, 5] import sys n = input() a = [sys.stdin.readline() for i ..
python : _(언더바)의 기능 1. interpreter에서 마지막 값을 저장하고자 할때. 2. 값을 무시하고 싶을 때 3. 변수나 함수명에 특별한 의미를 부여하고자 할때. 4. 숫자 리터럴 값의 자리 수 구분을 위한 구분자로서 사용할때 a,_,c = 1,2,3 일 경우 a 에는 1, c 에는 3 이 저장되는 것을 알 수 있습니다. 여러개의 값을 무시하고 싶은 경우에는 a,*_,c 처럼 _ 앞에 * 를 사용하면 됩니다. 또한 값을 무시하는 _ 는 index 가 필요없는 for loop 문을 작성할 경우에 사용할 수 있습니다. a,_,c=1,2,3 print(a,c) # 1,3 출력 for _ in range(10): print("print") # 인덱스에 상관없는 경우 _(언더바 사용) 어떤 것에 ..