1026 : [기초-입출력] 시분초 입력받아 분 만 출력하기 with Swift
23. 콘솔에서 시간을 시:분:초 형태로 입력받아 분 만 출력해보시오.
입력 예시
12:9:50
출력 예시
9
JAVA
import java.util.Scanner;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String pattern = "^[0-9]*:[0-9]*:[0-9]*$";
String line = scanner.nextLine();
scanner.close();
if(Pattern.matches(pattern, line)) {
String[] dotPars = line.split(":");
if(dotPars.length > 2) {
int hour = Integer.parseInt(dotPars[0]);
int minute = Integer.parseInt(dotPars[1]);
int second = Integer.parseInt(dotPars[2]);
System.out.println(minute);
}
}
}
}
Swift 4.2
import Foundation
let line = readLine()
//var line:String? = "2012.1.1"
if line != nil {
let p = "^[0-9]*:[0-9]*:[0-9]*$"
do {
let regex = try NSRegularExpression(pattern: p)
let results = regex.matches(in: line!, options: [], range: NSRange(line!.startIndex..., in: line!))
let arry = results.map { (cheking) -> String in
let str = String(line![Range(cheking.range, in: line!)!])
let arry = str.split(separator: ":")
if arry.count > 2 {
let h = Int(arry[0])
let m = Int(arry[1])
let s = Int(arry[2])
guard h != nil, m != nil, s != nil else {
return ""
}
return "\(m!)"
} else {
return ""
}
}
if arry.count > 0 {
print(arry.first!)
}
}catch let err {
print("ERROR: \(err.localizedDescription)")
}
}
이번 문제는 1019번 년월일 소스를 변경해서 돌렸습니다.
패턴 매칭은 앞으로도 소스를 우려먹을수 있겠네요~
https://codeup.kr/problem.php?id=1026
1027 : [기초-입출력] 년월일 입력받아 형태 바꿔 출력하기 with Swift
24. 콘솔에서 년.월.일을 입력받아 일-월-년 형태로 출력하라.
입력 예시
2014.07.15
출력 예시
15-07-2014
Java
import java.util.Scanner;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String pattern = "^[0-9]*.[0-9]*.[0-9]*$";
String line = scanner.nextLine();
scanner.close();
if(Pattern.matches(pattern, line)) {
String[] dotPars = line.split("\\.");
if(dotPars.length > 2) {
int year = Integer.parseInt(dotPars[0]);
int month = Integer.parseInt(dotPars[1]);
int day = Integer.parseInt(dotPars[2]);
System.out.println(String.format("%02d-%02d-%04d", day,month,year));
}
}
}
}
swift 4.2
import Foundation
let line = readLine()
//var line:String? = "2012.1.1"
if line != nil {
let p = "^[0-9]*.[0-9]*.[0-9]*$"
do {
let regex = try NSRegularExpression(pattern: p)
let results = regex.matches(in: line!, options: [], range: NSRange(line!.startIndex..., in: line!))
let arry = results.map { (cheking) -> String in
let str = String(line![Range(cheking.range, in: line!)!])
let arry = str.split(separator: ".")
if arry.count > 2 {
let y = Int(arry[0])
let m = Int(arry[1])
let d = Int(arry[2])
guard y != nil, m != nil, d != nil else {
return ""
}
return String.init(format: "%02d-%02d-%04d", arguments:[d!,m!,y!])
} else {
return ""
}
}
if arry.count > 0 {
print(arry.first!)
}
}catch let err {
print("ERROR: \(err.localizedDescription)")
}
}
이번에도 역시 소스를 우려먹었습니다. 패턴이랑 출력만 바꿔주면되서 편하네요~
https://codeup.kr/problem.php?id=1027
반응형
'iOS > CodeUP - 기초100 With Swift' 카테고리의 다른 글
1031,1032,1033 [기초-출력변환] 진수 변환 문제 with Swift (0) | 2019.07.12 |
---|---|
1028,1029,1030 [기초-데이터형] 입력받아 그대로 출력하기2-3 with Swift (0) | 2019.07.09 |
1023,1024,1025 [기초-입출력] 입력받아 출력하기 with Swift (0) | 2019.07.08 |
1020,1021,1022 [기초-입출력] 입력받아 출력하기 with Swift (0) | 2019.07.08 |
1017,1018 1019 [기초-입출력] 정수,시간,년월일 출력 with Swift (0) | 2019.07.08 |