본문 바로가기

Algorithm123

Swift) 백준 10250번 (ACM호텔) 요구능력 : 규칙 찾기 코드설명 : 문제를 읽어보면 위 사진에 표시해놓은 규칙이 나오게 된다. for문으로 겉에서 호수, 속에서 층수로 돌리고, 층수 구하는 for문에서 몇번째 손님일때 몇호인지를 쭉 세고, 그리고 입력받은 N이 count랑 같아지면 입력받은 손님번째랑 내가적은 손님번째가 같아지니까 그 때 호수를 출력하면 된다. 후기 : 평탄한 난이도의 문제인 것 같다. let T = Int(readLine()!)! for _ in 1...T { let arr = readLine()!.split(separator: " ").map{ Int($0)! } let H = arr[0] let W = arr[1] let N = arr[2] var count = 0 for i in 1...W { for j in 1.. 2021. 8. 6.
Swift) 백준 2869번(달팽이는 올라가고 싶다) 요구능력 : 수학적인 사고(?) 코드설명 : 문제를 보면서 적어보면서 수학공식이 나올거 같다 싶어서 Ax - B(x-1) = V 라는 공식을 생각해냈다.(x는 며칠(걸리는기간) 이다.) 처음에 위 공식의 x자리에 i를 넣고 반복문을 돌렸는데.. 시간초과가 나와버렸다. 그래서 그냥 일방적으로 x를 구해줘야겠다. 싶어서 식을 정리하니 x = (V - B) / (A - B)가 나왔다. 근데 이게 Int로 받고 출력하면 문제가 두번 째 예제 5 1 6을 입력 할 경우 A가 목적지보다 높이 올라가 버린다. 이런경우 처리를 위해 Double로 받고 그냥 올림 해버려서 1.25일이 걸리는걸 2일로 만들었다. 1.1일이든 1.01일이든 나오는건 결국 달팽이는 2일째에 도달하는 것이기 때문이다. 후기 : 평탄한 난이도의.. 2021. 8. 6.
Swift) 백준 1193번(분수찾기) 요구능력 : 대각선의 규칙을 찾느냐 못찾느냐 코드설명 : 이렇게 대각선 지그재그로 간단다. 그럼 규칙을 찾아보면 한대각선당 분자분모의 합이 같다. 1/1 || 1/2, 2/1 || 3/1, 2/2, 1/3 || 1/4, 2/3, 3/2, 4/1 || 5/1, 4/2, 3/3, 2/4, 1/5 ... 이렇게 나온다. 그럼 각각 합은 2, 3, 4, 5, 6이 나오게된다. 각각 개수는 1, 2, 3, 4, 5가 나오게된다. 나는 for문을 이용해서 sum에다가 i씩 더하면서 X보다 크거나 같을 경우 루프를 빠져나가도록 작성했다. 왜? 본질적인 이유는 count 변수를 이용해서 구하고자 하는 구간의 합을 구하기 위함이다. 입력받는 값은 X번째 수 이다. i를 위에서 말한 각각 개수라고 보면된다. X번째 수라는.. 2021. 8. 5.
Swift) 백준 2292번 요구능력 : 규칙을 찾아서 구현할수있느냐 코드설명 : 우선 규칙을 찾아야된다. 1일 때는 1개 2~7일 때는 2개 (범위 : 6) 8~19일 때는 3개 (범위 : 12) 20~37일 때는 4개 (범위 : 18) 38~61 일 때는 5개 (범위 : 24) . . 보면, 1일 때를 제외하고 아래로 내려갈수록 범위가 6씩 늘어난다. 이제 이 규칙을 이용해서 문제를 풀어야한다. 내가 생각하면서 풀어간 순서대로 적어보겠다.(아래코드 참조하면서 봐주세요.) 1. 1은 따로 처리를 해줘야한다. 왜? 1은 구해놓은 규칙과 연관성이 없기 때문에.. 애초에 1을 제외하고 구한 규칙이다. 2. 규칙으로 식을 만들어보자. 우리는 sum에 1을 넣어야된다. 왜? 1을 제외한 규칙이기 때문에 1부터 시작해야된다. for문안에서 .. 2021. 8. 5.