본문 바로가기

Algorithm236

Swift) 백준 1978번 (소수) 요구능력 : 소수를 아느냐 코드설명 : 입력받은 수 만큼 for문을 돌려서 1하고 자기자신이 아닌 경우에만 나누기를 실행했다. 1은 소수가 아닌데 1하고 자기자신으로만 나눠지기 때문에 입력받은 수가 1인 경우에는 따로 처리를 해주고, 다른것들은 2부터 자기자신 이전까지 나눴을 때 나누어 떨어지면 소수가 아니기 때문에 isPrimeNumber를 false로 설정해준다. 아래에서 isPrimeNumber가 true이면 소수이기 때문에 count를 1더해주고, for문내에서 다음번수를 돌릴때 기본값이 false이면 count가 안세어지니까 true로 초기화를 해준다. 후기 : 실버4티어 문제치곤 쉽고 빠르게 푼편인것같다. let N = Int(readLine()!)! var count = 0 var isPri.. 2021. 8. 6.
Swift) 백준 2839번 (설탕 배달) 요구능력 : 잘 모르겠다. 코드설명 : 처음에는 5의 배수이면 그냥 5로 나눠버리면 그게 제일 적은 설탕봉지니까 조건을 줫고, N에 0을 준 이유는 아래에서 N이 0이 아니면 정확한 N킬로가 안나오다고 해둿기 때문이다. while문에 N > 0 를 조건으로 준 이유는 N을 지속적으로 빼고 나눌건데, 만약 정확한 N킬로가 나온다면 N은 0이 될거고 아니라면 N은 - 가 나올것이다. 계속 3으로 빼주고 5로 나눠지는지 확인하기 때문. 가방을 최대한 적게 들어야 된다고 했으므로, N을 3으로 빼다가 N이 5에 나누어 떨어진다면 N이 결국 최소한의 가방이 나온다. 후기 : 처음에 방향을 잘못잡아서 이상한 길에 빠져버리고 오래걸려버린.. var N = Int(readLine()!)! var result = 0 i.. 2021. 8. 6.
Swift) 백준 2775번 (부녀회장이 될테야) 요구능력 : 규칙찾기, 2차원배열 코드설명 : 문제 설명을 보고 대충 그림을 그려보면 규칙을 찾기 쉽다. 2층 1 4 10 20 ... 1층 1 3 6 10 15 ... 0층 1 2 3 4 5 ... 이런식으로 가는데, 뚫어지게 보다가 규칙을 찾았다. 왼쪽 호수의 값 + 바로 아래층의 값 = 구하고자하는 층수의 값 이라는 공식이 나온다. 참고로, 맨 왼쪽일 때는 왼쪽값이 없기 때문에 맨 왼쪽일 때는 따로 처리를 해준다. 풀이는 여러가지가 나올 것 같은데 나는 2차원배열로 했다. i는 층이고, j는 호수다. i가 0이라는건 0층일 때 인데, 위에서 정한 공식을 적용하기에는 아래층이 없다. 따로처리를 해줬다. 그리고 j가 0이라면 맨 왼쪽 호수이기 때문에 값 1을 넣어줘서 처리한다. 그리고 j가 0이 아니라.. 2021. 8. 6.
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.