아무리 대가리 굴려도 빠가라서 그런가, 최적화된 알고리즘을 구하기가 너무 힘듬;
온라인게임에서 그냥 둥글게 앉은 사람들 이름을 배치시키려고 하는데,
온라인 게임이니까, 각자 보이는 위치가 다를거 아냐.
예를 들어서, 배열의 0번부터 6번까지 a, b, c, d, e, f, g 7명의 사람이 순서대로 들어있다고 한다면
array = [a, b, c, d, e, f, g];
for(int i = 0; i < array.length; i++){
if( array[i] == d){
index = i; // array 에서 d의 위치
}
}
d 의 위치를 구하는건 쉬운데(3)
d보다 index가 작은 사람은 d 의 오른쪽에, d보다 index가 큰 사람은 d 의 왼쪽에 보이게 하려고 하거든.
for문을 각각 나누어서는 했는데, 2중 for문으로 합쳐서 하려니까 머리가 도저히 안돌아간다 ㅠㅠ
for(){
for(){
}
for(){
}
}
내가 a 일떄는 위처럼 보일거고.
내가 d 일때는 위 처럼 보여야겠지.
혹시 위 알고리즘을 참고할만한 사이트가 있음 알려주라 ㅠㅠ
d위치 구한다음에 회전시켜
if( index < d ) left_array = array[ index ]; if( index > d ) right_array = array[ index ];
각기 다른 사람들에게 자기 시점으로 보이게 하려고 하는거라서..
자기 시점 기준에서 저렇게 좌우로 나눈 뒤 그리면되지
조언하나 하자면 변수는 아낄필요없다. 생각 정리안될 때마다 중간에 하나씩 치환용으로 선언해. 나중에 컴파일러 최적화 방식을 제대로 알기전까지는 변수수준 컨트롤 최적화는 어차피 불가능하니까 초보일 땐 그런 부분은 과감히 포기하는 거임
이건 네 머리로 하기보다는 자료구조 책 하나 펴서 정렬 알고리즘 보면 다나옴
흐 고마워 형들 ㅠㅠ 더 머리 싸매고 고민해볼게
원형큐처럼 생각하면 될거같은데
model과 view에 대한 구분을 명확히 하면 됨.
테스트