The Way

백준 이전에 푼 것 1 본문

PS/백준 온라인 저지

백준 이전에 푼 것 1

Jeonggyun 2018. 5. 11. 02:35

* 코드는 맨 아래에 있습니다


예전에 풀었던 백준 문제들을 한 번씩 검토해보았다.

최대한 원형 코드를 유지했다. 진짜로 초보 시절에 짠 코드도 있어 지저분할지도ㅎ



# 백준 1011번: Fly me to the Alpha Centauri

2n - 1회 이동할 때 최대 이동거리는 1 + ... + n + ... + 1

2n회 이동할 때 최대 이동 거리는 1 + ... + n + n + ... + 1

경계가 나뉘었으니 잘 사용하면 된다.



# 백준 1016번: 제곱 ㄴㄴ 수

범위가 상당히 애매하다.

100만 바로 위의 소수는 1000003인데, sqrt(1조 + 100만) = 1000000.5 정도라서 100만으로 봐도 전혀 무리가 없다. long long 다루는 데 주의.



# 백준 1021번: 회전하는 큐

상당히 난해한 문제라고 생각하는데 어떻게 잘 풀었는지 모르겠다.

알고리즘은 대충 왼쪽에 가까운지 / 오른쪽에 가까운지 보고

몇 칸 이동했는지에 따라 뒤 숫자들의 인덱스를 바꾸어주면 된다.

n=50이라 그나마 다행인 문제.



# 백준 1026번: 보물

힌트에 나온 것처럼 숫자의 순서를 물었으면 어려울 뻔 했는데,

값을 물어서 그냥 정렬 문제가 되었다.



# 백준 1032번: 명령 프롬프트

생략



# 백준 1037번: 약수

최소공배수를 구하면 간편하다.

소인수가 한 종류일 경우 최소공배수 * 소인수를 해주어야 한다.


* 최대공약수와 최소공배수를 간단히 구하는 코드

long long gcd(long long m, long long n) {
	while (true) {
		if (m > n) m %= n;
		else n %= m;
		if (m == 0 || n == 0) return m + n;
	}
}

long long lcm(long long m, long long n) return m * n / gcd(m, n);

상당히 아름답다.



# 백준 1065번: 한수

수를 집어넣었을 때 수가 한수인지 판별하는 코드를 만들었다.

입력이 작아서 괜찮은데, 입력이 커지면 첫 자리수에서 시작해 등차로 더해가도록 세는게 더 효율적일 듯.



# 백준 1074번: Z

재미있는 문제이다. 비트가 켜져있는지를 보고 적당히 더해주면 된다.



# 백준 1085번: 직사각형에서 탈출

# 백준 1100번: 하얀 칸

# 백준 1110번: 더하기 사이클

생략



# 백준 1149번: RGB거리

가장 일반적인 DP 문제



# 백준 1152번: 단어의 개수

띄어쓰기 갯수를 세면 된다고 생각하기 쉬운데 맨 앞이나 맨 뒤에 공백이 나올수도 있으니 신경써야 한다.




'PS > 백준 온라인 저지' 카테고리의 다른 글

5월 12일 백준  (0) 2018.05.13
5월 11일 백준  (0) 2018.05.12
5월 10일 백준  (0) 2018.05.11
5월 2일 백준  (0) 2018.05.03
백준 2480번: 주사위 세개  (0) 2018.02.21
Comments