본문 바로가기

Algorithm

(5)
[Java] println과 StringBuilder 속도 차이 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net println을 쓰니까 시간이 3280ms로 너무 느려서 StringBuilder로만 바꿔줬더니 시간이 924ms로 엄청나게 단축되었다. 마지막 System.out.println(sb); 문도 BufferedWriter를 써서 변경해주었더니 876ms로 더 단축되는걸 볼 수 있었다. import java.io.BufferedReader; import java.io.BufferedWriter; i..
[error] 식에 정수 또는 범위가 지정되지 않은 열거형 형식이 있어야 합니다. 아래와 같은 코드를 작성하였는데 에러가 발생하였다. int func3(int N){ if(sqrt(N) % 1 == 0) 에레메세지 식에 정수 또는 범위가 지정되지 않은 열거형 형식이 있어야 합니다. sqrt 연산은 double형을 반환하는데 모듈러 연산은 정수형에 대해서만 수행이 가능하기 때문에 에러가 발생하였다.
[Algorithm] 이분탐색 ● 이분탐색 : 정렬되어 있는 배열에서 특정 데이터를 찾기 위해 모든 데이터를 순차적으로 확인하는 대신 탐색 범위를 절반으로 줄여가며 찾는 방법 ● 선형탐색은 O(N)에 동작하고 이분탐색은 O(lg N)에 동작합니다. ● 구현 # BOJ 1920번:수찾기 # include # include using namespace std; int arr[100005]; int n; int binarysearch(int target){ int st,en,mid; st=0; en=n-1; while(stn; for (int i=0; i> arr[i]; } sort(arr,arr+n); cin>>m; while(m--){ cin>>target; cout>m; while(m--){ cin>>target; cout
[Algorithm] 시간복잡도 / 공간복잡도 / 자료형 1. 시간복잡도(Time Complexity): 입력의 크기와 문제를 해결하는데 걸리는 시간의 상관관계 빅오표기법(Big-O Notation): 주어진 식을 값이 가장 큰 대표항만 남겨서 나타내는 방법 - "걸리는 시간이 N에 비례한다.", "lg N에 비례한다."라고 표현한 것이 빅오표기법의 역할이다. 2. 컴퓨터는 1초에 대략 3-5억 개 정도의 연산을 처리할 수 있다. N의 크기 허용 시간 복잡도 N
[Algorithm] <bits/stdc++.h> 1. #include bits 폴더 안의 stdc++.h에 아래의 헤더들을 미리 include 해놓은 것과 같다. #include #include #include #include #include #include #include #include