結果
問題 | No.39 桁の数字を入れ替え |
ユーザー |
|
提出日時 | 2020-07-15 11:56:22 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,547 bytes |
コンパイル時間 | 18,344 ms |
コンパイル使用メモリ | 245,216 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-21 13:46:01 |
合計ジャッジ時間 | 11,895 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
package mainimport ("bufio""fmt""os""strconv""strings")var sc = bufio.NewScanner(os.Stdin)func nextLine() string {sc.Scan()return sc.Text()}func nextInt() int {a, _ := strconv.Atoi(nextLine())return a}func main() {a := nextLine()intArray := toIntArray(a, "")originalSize := ArrayToInt(intArray)max := originalSize//1回だけスワップをlooplen := len(intArray)for i := 0; i < len; i++ {for j := i + 1; j < len; j++ {copied := arrayCopy(intArray)copied[i], copied[j] = intArray[j], intArray[i]copiedSize := ArrayToInt(copied)// スワップ済みが元より大きいとき、最大をスワップ済みで置換if copiedSize > max {max = copiedSize}}}fmt.Println(max)}/*** 文字列を分割して数値要素の配列に変換して返す*/func toIntArray(original string, delimiter string) (intArray []int) {splited := strings.Split(original, delimiter)len := len(splited)intArray = make([]int, len)for i := 0; i < len; i++ {intArray[i], _ = strconv.Atoi(splited[i])}return}/*** 数値配列を桁数に合わせた数値に変換して返す*/func ArrayToInt(original []int) (result int) {base := 1len := len(original)//末尾から足しては10倍していくfor i := len - 1; i >= 0; i-- {result += base * original[i]base *= 10}return}/*** 数値配列のコピーを返す*/func arrayCopy(original []int) (result []int) {result = make([]int, len(original))_ = copy(result, original)return}