본문 바로가기
온라인 저지/BOJ

[BOJ/C]2675 문자열 반복

by ahj 2021. 9. 25.

논리자체는 상당히 간단한 문제였는데 NULL값 처리에서 문제를 겪어서 1시간이 넘도록 헤맸다...

#include <stdio.h>

int main()
{
  int n, r;
  char s[20]={};
  scanf("%d", &n);//입력할 횟수
  for(int i=0;i<n;i++)
  {
    scanf("%d %s", &r, s);
    for(int j=0;j<sizeof(s);j++)
    {
      if(s[j]=='\0') break;//얘가 문제였다. 공백처리를 어떻게 할지 검색어를 생각해내지 못해서 시간을 버렸다.
      //null, '\0' 기억하자
      for(int k=0;k<r;k++)
      {
        printf("%c", s[j]);
      }
    }
    printf("\n");
  }
  return 0;
}

null, '\0' 기억하자

이거는 입력 출력 입력 출력이고

#include <stdio.h>

int main()
{
  int n;
  scanf("%d", &n);
  char s[n][30];//각 열마다 입력해주기 위해 이중 배열 선언
  int r[n];

  for(int i=0;i<n;i++)
  {
    scanf("%d %s", &r[i], s[i]);
  }
  for(int i=0;i<n;i++)
  {
    for(int j=0;j<20;j++)
    {
      if(s[i][j]=='\0') break;
      for(int k=0;k<r[i];k++)
      {
        printf("%c", s[i][j]);
      }
    }
    printf("\n");
  }

  return 0;
}

 

이거는 입력한대로 array에 저장해서 입력을 마치면 한꺼번에 출력하도록 해준 것이다.

 

다른 사람들은 이것저것 멋있는 기술 많이 써서 간단히 해결하는 것 같은데

나는 아직도 바닐라 C++, Python 수준에 머물러있다.. 이런 것들은 어떻게 공부해야 하지

코테 강의 듣자

 

시간복잡도도 생각해가면서 풀자

https://coding-factory.tistory.com/608

 

[Algorithm] 알고리즘 시간복잡도에 대하여

시간복잡도란? 시간 복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미합니다. 같은 결과를 가져오는 프로그래밍 소스도 어떻게 작성하느냐에 따라 걸리는 시간이 달라질

coding-factory.tistory.com

시간복잡도 검색해서 공부하자고

오늘 짠 코드는 결국 O(n)이네 이중 for문에서 20이 고정이라 다행이다

댓글