結果
問題 | No.39 桁の数字を入れ替え |
ユーザー |
![]() |
提出日時 | 2020-07-15 11:58:03 |
言語 | Go (1.23.4) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,638 bytes |
コンパイル時間 | 13,592 ms |
コンパイル使用メモリ | 242,420 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-21 13:48:05 |
合計ジャッジ時間 | 12,905 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 WA * 1 |
ソースコード
package mainimport("fmt""strconv""bufio""strings""os")func main() {num := readInt()// ゴリ押しvar list []intnumSlice := digit(num, list)// 桁が逆さでsliceにはいるので反対向きにnumSlice = reverse(numSlice)max := 0// 1つ目列決定for i := 0; i < len(numSlice); i++ {// 2つ目列決定for j := 0; j < len(numSlice); j++ {if i == j {continue}// 数値処理がめんどくさいのでstringで// 速さを犠牲にtmpNum := ""// slice処理用ループfor k := 0; k < len(numSlice); k++ {// 入れ替え1つ目if k == i {tmpNum = tmpNum + strconv.Itoa(numSlice[j])continue}// 入れ替え2つ目if k == j {tmpNum = tmpNum + strconv.Itoa(numSlice[i])continue}// 入れ替え対象列でない時はそのままtmpNum = tmpNum + strconv.Itoa(numSlice[k])}n, _ := strconv.Atoi(tmpNum)if n > max {max = n}}}fmt.Println(max)}func digit(i int, list []int) []int {if i > 0 {return digit(i/10, append(list, i%10))}return list}func reverse(numbers []int) []int {for i := 0; i < len(numbers)/2; i++ {j := len(numbers) - i - 1numbers[i], numbers[j] = numbers[j], numbers[i]}return numbers}// SONODA POWER utliを拝借// +++++++++++++++++++++++++++++func readStdin() string {in := bufio.NewReader(os.Stdin)s, _ := in.ReadString('\n')return strings.TrimSuffix(s, "\n")}func readInt() int {s := readStdin()i, _ := strconv.Atoi(s)return i}// +++++++++++++++++++++++++++++