본문 바로가기

Algorithm21

[Algorithm] Swift 백준 1259번 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 문제접근 이번 문제 난이도가 높지 않다고 생각이 들었다. 그냥 문제를 읽고 조건만 천천히 넣어주었다. 정답풀이 import Foundation var inputArr: [String] = [] var reversedArr: [String] = [] while true { let n = readLine()! if n == "0" { break } inputArr.append(n) } for i in 0.. 2024. 3. 9.
[Algorithm] Swift 백준 1181번 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제접근 문제를 보았을 때 간단한 문제라고 생각했고 가볍게 풀고 넘어가려고 했는데 왼걸 시간 내에 풀지 못했다. 배열을 만들어서 조건을 주어 정렬하려고 했는데 sort() 매소드에 대해서 잘 몰라서 코드가 작성하기 힘들었다... 그래서!!! 공부했다! https://h2kangrok.tistory.com/23 [Swift] 배열 정렬 sort와 sorted 공식문서에는 sort()는 컬.. 2024. 2. 18.
[Algorithm] Swift 백준 1018번 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제접근 문제를 정해진 시간까지 풀지 못했다. 사실.. 문제를 정확하게 이해하지 못한 게 큰 거 같다. 다른 풀이를 참고해서 문제를 풀었지만 풀이를 완전히 이해하는데 시간이 좀 걸렸다. 정답풀이 import Foundation let input = readLine()!.split(separator: " ").map { Int($0)! } let m = input[0], n = input[1.. 2024. 2. 5.
[Algorithm] Swift 백준 1157번 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제접근 알파벳 대소문자로 된 단어가 주어진다. 만약 abcc라는 입력이 들어온다고 생각해 보자! 그럼 정답으로 원하는 답은 c가 될 것이라는 것을 알 수가 있다. 그럼 a는 1번, b는 1번, c는 2번이라는 정보를 저장해주어야 한다. a는 1이라는 걸 보면 무엇인가 떠오르지 않나?? 딕셔너리 형태를 띠고 있다고 생각이 들 수 있다. a를 Key값으로 1을 Value 값으로 넣어줘서 Value 값들을 비교해서 가장 큰 값을 찾아.. 2024. 1. 9.
[Algorithm] Swift 백준 14467번 https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 문제접근 만약 관찰 횟수가 3번이고 입력이 3 1, 3 0, 6 0이라면 cowNumber배열을 만들어주어 소의 번호를 넣어주고 cowLeftRight배열을 만들어주어 길의 왼쪽과 오른쪽을 의미하는 0과 1을 넣어준다. 반복문을 사용하여 cowNunber배열에 들어있는 소의 번호가 같을 떼 소의 위치마저 달라졌다면( 0 -> 1 or 1 -> 0) crossCount를 1씩 증가시켜 준다! var.. 2023. 11. 18.
[Algorithm] Swift 백준 20546번 https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 문제접근 이번문제가 복잡해 보여도 천천히 읽어만 봐도 풀 수 있다는 생각이 들어 정해진 시간이 지나도 계속 문제를 풀어봤다. 다른 일을 하다가도 계속 머릿속으로 어떻게 풀면 될까 계속된 고민을 했다. let firstMoney = Int(readLine()!)! let stock = readLine()!.split(separator: " ").map{Int($0)!} va.. 2023. 11. 16.