앟 책에서 배열요소를 역순으로 정렬이라고 하길래 내림차순으로 재정렬하는줄 알았는데 a[0] <-> a[4], a[1] <-> a[3], a[2] 말 그대로 배열의 순서만 바꾸는 거였다! ㅋㅋㅋ
for(i=0;i<n/2;i++){
t = a[i];
a[i] = a[n - i - 1];
//a[n]개의 배열중에 a[n - i - 1]을 해줌으로서 i의 바로 반대편에 위치한 인덱스 값과 교환
a[n - i - 1] = t;
}
이후 기수(기본 수) n진수로 변환도 있었으나 아직은 그렇게 필요성을 못느껴서 그냥 넘어갔다!
소수구하기
이제까지는 소수구하기를
#include <stdio.h>
int main(){
int cnt,j;
for(int i=2; i<1000;i++){
cnt=0;
for(j=2;j<i;j++){
if(i%j==0){
cnt++;
break;
}
}
if(cnt=0) //나눠졌던 수가 없을 시
printf("%d\n",i);
}
}
이렇게 했었으나 cnt를 쓰지 않더라도 그냥 j가 i 수만큼 갔을시로 조건 걸수도 있다!
if(j==i) //마지막까지 나누어 떨어지지 않았을 시
printf("%d\n",i);
이렇게!! 더 간단해졌다.
바깥쪽 for문의 i값을 2씩 증가하여 3,5,7,9... 홀수값만 생성해 시간을 더욱 줄일 수 있다
#include <stdio.h>
int main(){
int j;
for(int i=3; i<1000;i+=2){
for(j=2;j<i/2;j++){
if(i%j==0){
break;
}
}
if(j==i/2)
printf("%d\n",i);
}
}
내가 생각하는 극한의 시간 줄이기 하지만 백준 소수구하기 문제는 어림도 없이 시간 초과 실패 ㅋㅋ
구조체도 전에 공부했던 글이 있기에 블로그에 다시 따로 정리하지 않겠다.
아ㅋㅋㅋ이거 언제 푸냐고....ㅠㅠㅠ
'프로그래밍 > 알고리즘' 카테고리의 다른 글
쉬운 스택 알고리즘 - C언어 (2) | 2022.09.20 |
---|---|
4. do it! 03-1 검색 (선형, 이진) ,복잡도 - C언어 (0) | 2022.07.27 |
2. do it! 02-1 기본 자료구조 (포인터, 배열, 난수(랜덤 수))- c언어 (0) | 2022.07.26 |
1. do it! 자료구조와 함께 배우는 알고리즘 입문 - c언어 (0) | 2022.07.25 |