import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String S = br.readLine();
boolean[] isOarr = new boolean[N+1];
int xcount = 0;
for (int i=0; i<N; i++) {
if(S.charAt(i) == 'o') {
isOarr[i+1] = true;
} else {
isOarr[i+1] = false;
xcount ++;
}
}
// System.out.println(Arrays.toString(isOarr));
// x가 나온 순번, 근데 계속 도는건 비효율, 그래서 각 x가 몇번째에 나왔는지 저장하고 이값을...그냥 해쉬문제.
// 왜 해쉬를 써야한다고 생각했을까?
// 계속 계산하면 시간초과나
// 그래서 왜 하필 해쉬 ? -> x가 나온 순번을 일단 O(N)으로 바로 구하고 그 다음 작업할 수 있으니...
// 근데 해쉬 쓰는법 까먹어서 걍 리스트쓸래
ArrayList<Integer> first_X_list = new ArrayList<>(); // 여기선 0번부터 시작.
for (int i=1; i<= N; i++) {
if(!isOarr[i]) {
first_X_list.add(i); // idx+1번째 x는 i에 등장
}
}
for (int i=1; i<=xcount; i++) {
System.out.println(first_X_list.get(i-1));
}
for (int i=0; i<N-xcount; i++) {
System.out.println(N);
}
// System.out.println(first_X_list);
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: