Swift (356) 썸네일형 리스트형 [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()에 대해 알고있다면 쉽게 풀 수 있는 문제 [BOJ] 백준 1152 단어의 개수 (Swift) 문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 풀이 입력을 받고, 공백을 기준으로 나눈 뒤 개수를 세면 된다. String 자료형에 split() 메서드를 사용하면 쉽게 풀이할 수 있음 https://developer.apple.com/documentation/swift/string/split(separator:maxsplits:omittingemptysubsequences:) Apple Developer Documentation .. [BOJ] 백준 1157 단어 공부 (Swift) 문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 풀이 대소문자 구분이 없기 때문에 입력받은 단어를 대문자로 바꾸는 작업이 필요함 알파벳이 key, 나온 빈도수를 value로 갖는 Dictionary를 초기화 해줘야 함 입력받은 단어를 하나씩 돌면서 Dictionary에 key가 있다면 +1, 없다면 1 이렇게 접근하여서 풀었는데 새롭게 알게된 사실이 있어요. Dictionary를 초기화할 때, key를 기준으로 중복된 값을 알아서 더해주는 방식이 있어요 https://de.. [BOJ] 백준 2675 문자열 반복 (Swift) 문제 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 풀이 String(repeating:count:) 속성을 사용해서 쉽게 풀 수 있는 문제 입력받은 문자열을 하나씩 돌면서 반복해주고, 새로운 문자열에 붙혀주면 풀 수 있음 소스코드 후기 for문을 돌면서 문자열을 하나씩 반복해서 새로운 문자열에 붙혀줄 수도 있지만, map을 사용하면 훨씬 간단하게 구현할 수 있는 문제인 것 같다. [BOJ] 백준 10809 알파벳 찾기 (Swift) 문제 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 풀이 입력이 알파벳은 소문자로만 이루어져 있음 a - z 까지 하나씩 입력의 첫번째로 등장하는 위치를 구해줘야 함 (없다면 0) 알파벳 소문자로만 이루어졌기 때문에 아스키 코드 값을 사용하는 방법도 있을 것임 입력을 아스키 코드 값으로 변환을 해준다. readLine()!.map { $0.asciiValue! } 알파벳 소문자는 아스키 코드 값으로 97 ~ 122 까지 이루어져 .. 이전 1 ··· 33 34 35 36 37 38 39 ··· 45 다음