#include<iostream> #include<queue> #include<tuple> usingnamespacestd; queue<pair<int, int>> q; int dist[1001][1001]; intmain(){ int n; cin >> n; q.push({ 1, 0 }); while (!q.empty()) { int s, c; tie(s, c) = q.front(); q.pop(); if (dist[s][s] == 0) { // 화면에 있는 이모티콘 클립보드에 복사 dist[s][s] = dist[s][c] + 1; q.push({ s, s }); } if (s+c <= n && dist[s+c][c] == 0) { // 클립보드 화면에 붙여넣기 dist[s + c][c] = dist[s][c] + 1; q.push({ s + c, c }); } if (s - 1 >= 0 && dist[s - 1][c] == 0) { // 화면에 있는 이모티콘 -1 dist[s - 1][c] = dist[s][c] + 1; q.push({ s - 1, c }); } } int ans = 1e9; for (int i = 0; i <= n; ++i) { // 최솟값 찾기 if (ans > dist[n][i] && dist[n][i] != 0) ans = dist[n][i]; } cout << ans << "\n"; return0; }