#include <iostream>
int solution(const char* s)
{
int i = 0;
for(int o = 1; s[o]; ++o)
i = i * (s[i] == s[o]) + (s[i] == s[o]);
return i;
}
문제가 중학생 수준임엔 변함 없음~
아 졸립다.
#include <iostream>
int solution(const char* s)
{
int i = 0;
for(int o = 1; s[o]; ++o)
i = i * (s[i] == s[o]) + (s[i] == s[o]);
return i;
}
문제가 중학생 수준임엔 변함 없음~
아 졸립다.
저거보다 i = (i + 1) * (s[i] == s[o]); 가 더 빠르지 않나요? 배열 접근이 1/2 낮아지니...
옛날 컴에선 니 방법이 나을거야.
매일매일 코드좀 올려주시면 안되나요
뭔가 저는 비교 연산자를 항상 if나 while문 안에만 쓴것같은데 그냥 문장에서도 쓰는 걸 보니 충격적이네요
고정관념이지유...
옛날 사양용은 i = i + 1 >> (s[i] != s[o]);
i = (i + 1) >> (s[i] != s[o]);는 정상 동작 안한다는 것에 제 팔도 걸 수 있을듯...
아 그새 고치셨네요 ㅋㅋㅋㅋ
이해가 안되면 자살하면되나여
괄호 푼거 뿐이야.
왜 정상 동작 안하리라고 보는데?
무슨묹제임? 구글어쩌고?
응.
문자열의 길이가 2기가를 넘을까봐?
성님 코드는 s[i] != s[o]일 때 그저 2로 나눌 뿐이니까요.
C언어에서 bool 값은 0 아니면 1이니까요.
아 맞다.
성님 코드를 분기 코드로 나타내면 if(s[i] == s[o]) i++; else i = (i + 1) / 2; 거든요.
0을 곱해줘야되지 ㅡㅡㅋㅋ
니 말이 맞다~
졸려서 좀 둔함 =_=
주무세요 ㅋㅋㅋ 천재도 둔재가 되는 시간이 바로 졸릴 때임 ㄷㄷ
쉬프트로도 할 수 있지만, 하나 더 늘어나니 참을게 : )
솔직히 형님이 놓치실리가 없다고 생각했는데 말이에요 ㅋㅋ 정말 졸리신 듯 ㄷㄷ
i = i + 1 & ((s[i] == s[o]) << 31 >> 31); 곱셈 배제식!
아 변태같아.
괄호 한쌍은 괜히 쳤네.
그건 이게 제일 낫지 않나요? i = (i + 1) >> ((s[i] == s[o]) << sizeof(int));
sizeof(int) 에서 에러
sizeof(int) * 8 (- 1) 이겠지
여기 열거된거 옛날에 다 써먹던 방법들 ㅋㅋ
아 코드 수정. i = (i + 1) >> ((s[i] == s[o]) << (sizeof(int) + 1));
땡.
sizeof 단위를 비트로 바꿔주셔야죠
i = (i + 1) >> ((s[i] == s[o]) << (sizeof(int) + 8)); 이 제일 깔끔하겠네. 1비트 컴퓨터도 있다고 가정하고.
sizeof(int) << 3 하면 됨.
2^sizeof(int) 해 보면 32비트 컴에서는 이것만 >> (2^4 = 16)이에요. 2^(sizeof(int) + 1) 하면 32비트 컴에서는 충분하죠. 다만 16비트서는 shift right 1 모자라니 2^(sizeof(int) + 2) 해야되고...
바이트로 하면 소용없어유
그거 << (sizeof(int) << 3) 해보시면 >> 2^(sizeof(int) * 8) 가 되는데 이게 얼마일까요...
+ 8만 해 줘도 돼요.
직접 sizeof(int)에 1, 2, 4, 8, 16, ... 값 넣어서 전개해 보시면
아실 수 있어요.
제일 군더더기 없는 건 i = (i + 1) >> ((s[i] == s[o]) << (sizeof(int) + 3)); 네요. sizeof(int)의 최소 값은 아무리 작아봐야 1일테니 ㅋㄷ
아아 맞넹
아닌데
아 두 번이지 ㅡ,.ㅡ
진짜 졸리신 듯 ㅠㅠ... sizeof(int) = 1 이라고 가정하고 1 << 4 하면 2^4 = 16이고... value>>16 하게 되죠. +3이 아니라 이제보니 +2면 충분하네요.
그래도 뭔가 이쁘지 않은데 흠.
최종 정리. i = (i + 1) >> ((s[i] == s[o]) << (sizeof(int) + 2));
근데 우리 무분기 코드 만드려고 이러는 게 너무 변태같네요 ㅋㅋㅋ
(sizeof(int) + 1) 이 젤 깔끔하긴 하다. 1비트 컴 그런건 에러고.
어셈 좀 놓은지 됐다고 계산이 느려졌어 흑흑
http://autogram.tk/이
중고차 어플리케이션 어떤가요?