0_ch4n
기계쟁이\n개발자
0_ch4n
0chn.xxx@gmail.com @0ch._.n
전체 방문자
오늘
어제

공지사항

  • All (282)
    • 🖥 CS (21)
      • 네트워크 (12)
      • 운영체제 (3)
      • 자료구조 (2)
      • Web (4)
    • 🧠 Algorithm (185)
      • [C] BOJ (93)
      • [JAVA] Programmers (91)
    • 📚 Study (69)
      • HTML&CSS (19)
      • MySQL (11)
      • JAVA (22)
      • Servlet&JSP (8)
      • Thymeleaf (2)
      • Spring (5)
      • JPA (2)
    • 📖 Book (1)
    • 📃 Certification (6)
      • 정보처리기사 (6)

인기 글

최근 글

최근 댓글

태그

  • kakao
  • Programmers
  • 코테
  • 코딩테스트
  • java
  • 프로그래머스
  • CSS
  • 카카오
  • til
  • 자바

블로그 메뉴

  • 홈
  • 태그
  • 방명록

티스토리

hELLO · Designed By 정상우.
0_ch4n

기계쟁이\n개발자

[C언어] 1427번 - 소트인사이드
🧠 Algorithm/[C] BOJ

[C언어] 1427번 - 소트인사이드

2022. 4. 8. 18:24
반응형

문제

배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력

첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.

풀이

그 전까지의 정렬 문제는 숫자를 각각 입력 받아서 배열에 입력할 수 있었지만 이 문제는 숫자를 한 줄에 다 줬기 때문에

우선 string형식으로 받아서 char 배열에 넣어 각 인덱스 당 숫자 하나씩 나눌 수 있었다

그리고 strlen함수를 이용해서 최대 인덱스 값. 즉, 숫자의 개수를 구할 수 있었고

char 배열에 입력 받은 숫자들을 48을 빼서 int형으로 다시 바꿔준 후 버블정렬을 통해 내림차순으로 재정렬해줬다

코드

#include <stdio.h>
#include <string.h>

//인접한 숫자끼리 크기비교해서 위치교환
void DESC(int arrSorted[], int len) {
    int temp;

    for(int i = 1; i < len; i++) {
        for(int j = i; j > 0; j--) {
            if(arrSorted[j] >= arrSorted[j - 1]) {
                temp = arrSorted[j];
                arrSorted[j] = arrSorted[j - 1];
                arrSorted[j - 1] = temp;
            }
        }
    }
}

int main(void) {
    char n[100] = {};
    int arrSorted[100] = {};

    scanf("%s", n); //전체 숫자를 string 형식으로 받아 char배열에 입력

    int len = strlen(n); //숫자 개수 구하기

    for(int i = 0; i < len; i++) { //전체 숫자를 int형으로 전환
        arrSorted[i] = n[i] - 48;
    }

    DESC(arrSorted, len); //버블정렬로 내림차순 정렬

    for(int i = 0; i < len; i++) { //출력
        printf("%d", arrSorted[i]);
    }

    return 0;
}
반응형
저작자표시 (새창열림)

'🧠 Algorithm > [C] BOJ' 카테고리의 다른 글

[C언어] 11651번 - 좌표 정렬하기 2  (0) 2022.04.09
[C언어] 11650번 - 좌표 정렬하기  (0) 2022.04.09
[C언어] 2108번 - 통계학  (0) 2022.04.08
[C언어] 10989번 - 수 정렬하기 3 (카운팅 정렬, Counting Sort)  (0) 2022.04.07
[C언어] 2751번 - 수 정렬하기 2 (힙 정렬, Heap Sort)  (0) 2022.04.07
    0_ch4n
    0_ch4n
    while(true) { study(); }

    티스토리툴바