본문 바로가기

반응형

PS

(326)
[BOJ] 백준 2869 달팽이는 올라가고 싶다 (Swift) 문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 풀이 낮에는 A미터 올라가고, 밤에는 B미터 미끄러진다. 주의해야 할 점이 A미터를 올라갔을 때, 정상에 올라갔다면 미끄러지지 않는다. while문을 통해서 구할 수 있겠지만, 이 문제는 시간제한이 0.15초 입니다. 또한 A, B, V의 범위가 (1 ≤ B < A ≤ V ≤ 1,000,000,000) 이므로, A = 2, B = 1, V = 1,000,000,000 이라면... 약 10억번의 연산을 수행하는 while문으로는 시간안에 해결할 수 없..
[BOJ] 백준 1193 분수찾기 (Swift) 문제 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 풀이 먼저 지그재그 순서가 어떻게 되는지 확인을 해봐야 합니다. 보라색으로 색칠한 부분은 아래에서 위 순서로, 주황색으로 색칠한 부분은 위에서 아래의 순서로 진행이 됩니다. 보라색으로 색칠한 부분은 홀수번째 대각선이 되겠네요! 대각선의 크기는 1, 2, 3, 4 ... 순으로 늘어나고 있습니다. X번째가 주어졌다면 X보다 크거나 같아질 때 까지 대각선의 크기를 더해줘서 몇번째 대각선에 위치했는지 찾을 수 있습니다. 예를들어 X가 7이라면..? 7
[BOJ] 백준 2292 벌집 (Swift) 문제 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 풀이 문제에 그림이 있어서 그림을 보고 어떻게 풀어야할지 이해해봅시다. 먼저 그림에 선을 그어서 방을 어떻게 나누는지 확인해봅시다. 발로 그린 그림이지만.. 잘 살펴보면 1 (1) = 1개 2 ~ 7 (6) = 2개 8 ~ 19 (12) = 3개 20 ~ 37 (18) = 4개 ... 인 것을 확인할 수 있습니다. 따라서 1부터 시작해서 n보다 작을 때 까지 6 * i를 더해줍니다. (i는 계속해서 ..
[BOJ] 백준 1712 손익분기점 (Swift) 문제 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 풀이 이 문제를 수학식으로 한 번 접근해보자. $A + B \times x \lt C \times x$ 따라서 $C \times x$가 더 커야 하므로 아래의 식이 성립할 것이다. $x = $$A \over C - B$ $+ 1$ 가변비용(B)이 판매비용(C)보다 크거나 같다면 아무리 물건을 팔아도 손익분기점을 넘길 수 없을 것이다. 소스코드 후기 수학적인 계산이 필요한 문제인 것 같다. 어려운 ..
[BOJ] 백준 1316 그룹 단어 체커 (Swift) 문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 풀이 Stack을 사용하면 쉽게 풀 수 있는 문제 입니다. 입력받은 단어에 대해 하나씩 확인하면서 스택에 넣어줍니다. 만약 Stack이 비어있지 않고, 스택의 꼭대기의 값이 현재 들어올 문자와 같다면 스택을 pop 해줍니다. 그 이후 스택에 현재 들어올 문자를 넣어줍니다. 그렇다면 ccazzzzbb 문자열이 들어온다면 어떤식으로 동작할까요? 스택이 비어있기 때..
[BOJ] 백준 2941 크로아티아 알파벳 (Swift) 문제 풀이 문제에 주어져있는 크로아티아 알파벳 테이블을 보고 입력받은 단어를 테이블에 맞게 알맞게 치환해주면 되는 문제! 왜 치환을 해야하냐면 예를들어 "adz="와 같은 문자열이 있다면, "dz="에서 한 번 세고, "z="에서 한 번 더 세버리기 때문입니다. "dz="를 보고 "dž"로 치환한다면 "z="가 사라지기 때문에 치환할 수 없기 때문에 이 점을 이용하기 위해서 치환해줍니다. 하지만 굳이 표에있는 알파벳으로는 치환해줄 필요는 없습니다.. 왜냐하면 크로아티아 알파벳으로 변경해주는 문제가 아닌 몇 개의 크로아티아 알파벳으로 이루어져 있는지의 수를 세는 문제이기 때문입니다. Swift에서는 문자열을 확인하면서 치환하는 replacingOccurrences(of:with:) 메서드를 사용할 수 있습..
[BOJ] 백준 5622 다이얼 (Swift) 문제 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 풀이 해당 알파벳을 입력하는데 걸리는 시간을 배열로 초기화 해줌 알파벳은 전부 대문자이고, "A"의 아스키 코드 값이 65 따라서 입력받은 단어에서 65를 뺀 값을 인덱스로 사용하면 해당 알파벳을 입력하는데 걸리는 시간을 구할 수 있음 모든 알파벳을 입력하는데 걸리는 시간을 출력해주면 끝! 🫡 소스코드 후기 아스키 코드 값과 걸리는 시간을 배열로 초기화하면 사용하면 쉽게 풀 수 있는 문제
[BOJ] 백준 2908 상수 (Swift) 문제 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 풀이 두 수를 입력받을 때, 뒤집어서 입력을 받고, Int 자료형으로 변경해준다. 거꾸로 입력받은 수 중 큰 수를 출력해주면 끝 소스코드 후기 reversed()에 대해 알고있다면 쉽게 풀 수 있는 문제

반응형