코드 업(CodeUp) 1081~1084/1351~1361/1367~1368번 문제 풀기
안녕하세요.
코드 업 1081~1084/1351~1361/1367~1368번 문제풀이입니다.
#1081번
저는 이 문제를 보고 이렇게 코드를 짰습니다. i가 a보다 작거나 같을 때까지 반복할 수 있는 반복문 안에 j가 b보다 작거나 같을 때까지 반복하는 반복을 사용하여 서로 다른 주사위 2개를 던졌을 때의 경우들을 구했습니다.
이 코드를 제출하면
컴파일 에러가 나왔습니다.
자세히 보니 6행에 b를 m이라고 잘 못 적어 컴파일 에러가 떴었습니다.
코드를 수정하여 다시 제출하면
정확한 풀이라고 잘 나왔습니다.
#1082번
16진수의 곱셈을 출력하는 코드를 작성했습니다. 저는 10진수 정수의 %d가 아닌 16진수 정수를 나타낼 수 있는 %x를 사용하였습니다.
이 코드를 제출하면
잘못된 풀이라고 나왔네요..
출력 결과를 보니 대문자들이 다 소문자로 출력되어 틀렸습니다.
대문자로 나올 수 있도록 %x를 %X라고 수정하였습니다.
다시 제출을 하면
정확한 풀이라고 나왔습니다!
#1084번
이번 문제에서는 for문을 3번이나 사용하였습니다. 처음에는 r이 나올 수 있는 경우, 2번째는 g가 나올 수 있는 경우, 마지막에는 b가 나올 수 있는 경우를 다 구하여 c라는 변수 안에 총 몇 개인지 알 수 있도록 저장하여 출력을 할 수 있도록 하였습니다.
이 코드를 제출하면
컴파일 에러라고 나왔습니다..
알고보니 제가 c의 변수 선언을 안 해서 컴파일 에러가 나왔더라고요...
그래서 c 변수 선언을 하고 다시 제출하였습니다.
오잉...? 이번엔 잘못된 풀이라고 나왔네요.
다시 코드를 천천히 보니 c를 0으로 초기화를 안 해서 잘못된 풀이라고 나왔어요...
c를 0으로 초기화를 시켜 다시 코드를 제출하면
정확한 풀이라고 잘 나왔습니다!
#1351번
이번 문제는 구구단을 할 수 있도록 코드를 짜는 문제입니다. 먼저 a와 b에 각각 구구단의 시작하는 수와 끝나는 수를 입력을 받고 i에 a를 대입하여 b와 같거나 작을 때까지 반복하도록 하였습니다. 또한 구구단이므로, j가 9와 같거나 작도록 반복하여 문제가 원하는 구구단을 할 수 있도록 만들었습니다.
이 코드를 제출하면
정확한 풀이라고 나왔습니다.
#1352번
이번에는 정사각형 별을 찍을 수 있도록 코드를 짜는 문제입니다. 먼저 a라는 변수에 한 줄에 별을 몇 번 출력할 수 있는지 입력을 받고, 가로(j)와 세로(i)가 a보다 같거나 작을 때까지 반복할 수 있게끔 for문을 사용했습니다.
이 코드를 제출하면
잘못된 풀이라고 나왔습니다.
출력 결과를 보니 줄 바꿈이 없어서 잘못된 풀이라고 나왔던 것 같네요..
줄 바꿈이 일어날 수 있도록 2번째 for문 바로 밑에 printf("\n");을 써주었습니다.
다시 이 코드를 제출하면
짜란~! 정확한 풀이가 나왔습니다.
#1353번
이번에는 직각 이등변 삼각형이 나올 수 있도록 코드를 짜는 문제입니다. 1352번 문제와 매우 비슷하지만 그 문제와의 차이점은 도형의 차이 같습니다. 삼각형이 될 수 있도록 j를 i와 같거나 작을 때까지 반복할 수 있도록 반복문을 사용했습니다.
이 코드를 제출하면
정확한 풀이라고 잘 나왔습니다.
#1354번
이번에는 역삼각형이 나올 수 있도록 하는 문제인데요. 역삼각형이 될 수 있도록 j는 a-i+1보다 작거나 같을 때까지 반복하는 반복문을 사용했습니다.
이 코드를 제출하면
잘못된 풀이라고 나왔습니다..
a-i+1이 아닌 a+1-i로 썼어야 했었는데 잘못 써서 잘못된 풀이라고 나온 것 같아요.
다시 수정한 코드를 제출하면
잘못된 풀이라고 또 나왔습니다.
자세히 보니 for()를 쓰면 ;을 쓰면 안 되는데 저는 ;를 써서 잘못된 풀이가 나온 것 같습니다.
그래서 6행에 ;을 지우고 다시 제출을 눌렀습니다.
이번에는 정확한 풀이라고 잘 나왔습니다.
#1055번
역삼각형이지만 왼쪽 아래가 공백이 있는 역삼각형을 만드는 문제입니다. 아까 역삼각형을 만드는 문제에 공백을 넣을 수 있는 for문을 사용하여 풀었습니다. 공백을 만들 수 있도록 k는 i-1보다 작거나 같을 때까지 반복하는 반복문을 사용했습니다.
이 코드를 제출하면
표현 에러라고 나왔습니다.
k=0이 아닌 k=1이라고 했어야 했는데 0이라고 저장하여 표현 에러가 나온 것 같네요..
수정한 코드를 다시 제출하면
정확한 풀이라고 잘 나왔습니다.
#1356번
이번에는 사각형 겉에만 별이 나올 수 있도록 하는 문제입니다. 만약 i 혹은 j가 1일 거나 i가 입력받은 값인 a와 같다면 별을 출력할 수 있도록 짜보았습니다.
이 코드를 제출하면
잘못된 풀이라고 나왔습니다.
출력 결과를 보았을 땐 처음 줄과 마지막 줄은 잘 나온 것 같지만 중간이 매우 이상하게 나왔습니다.
i뿐만 아니라 j도 a와 같을 때만 별이 출력할 수 있도록 수정하였습니다.
다신 이 코드를 제출하면
잘못된 풀이라고 나왔습니다.
공백이 없이 나왔네요.
제가 공백을 나올 수 있는 식을 안 써서 계속 잘못된 풀이가 나온 것 같습니다. 공백이 나올 수 있도록 출력문을 하나 더 쓰고 다시 제출하였습니다.
정확한 풀이라고 잘 나왔습니다!
#1357번
이번 문제에서는 한 줄에 있는 별의 개수가 점점 많아졌다거나 다시 작아지는 삼각형을 만들 수 있는 코드를 짜는 문제입니다. 그래서 저는 2개의 for문을 사용하여 하나는 점점 많아졌을 때, 다른 하나는 점점 작아질 때로 나누어 사용했습니다. 많아질 때와 작아질 때는 위에 나온 문제에 쓴 것들을 이용하여 풀었습니다.
이 코드를 제출하면
정확한 풀이라고 잘 나왔습니다.
#1358번
이번 문제는 제가 오늘 푼 문제 중 제일 어려웠던 것 같습니다. i는 a의 절반에 더하기 1을 한 값과 같거나 작을 때까지 반복하도록 하였고, 공백을 출력할 수 있도록 a의 절반에 1을 뺀 값과 같거나 작을 때까지 반복하였고, *을 출력할 수 있도록 i*2한 값에 1을 뺀 값보다 같거나 작을 때까지 반복하는 반복문들을 사용했습니다.
이 코드를 제출하면
표현 에러가 나왔습니다...
k는 1이면 안 돼서 1이 아닌 0의 값을 저장하여 수정했습니다.
다시 제출을 하면
정확한 풀이라고 나왔습니다.
#1359번
이번 문제는 1353번 문제와 똑같지만 출력하는 값만 다른 문제입니다. 출력하는 값이 숫자이도록 printf()에 j값을 출력하도록 코드를 짜보았습니다.
이 코드를 제출하면
오잉..?? 잘못된 풀이라고 나왔습니다.
알고 보니 띄어쓰기를 안 써서 잘못된 풀이라고 나왔네요..
문자와 문자 사이가 떨어질 수 있도록 띄어쓰기를 넣었습니다.
다시 이 코드를 제출하면
정확한 풀이라고 잘 나왔습니다.
#1360번
이번에는 역삼각형으로 * 대신 숫자가 나오는 코드를 작성하는 문제입니다. 아까 전과 비슷하게 짜보았습니다.
이 코드를 제출하면
잘못된 풀이라고 나왔습니다.
출력 결과를 보니 뭔가 많이 다릅니다.
출력한 값이 1359번과 같이 j를 출력하지 않고 b를 출력할 수 있도록 수정하였습니다.
이 코드를 다시 제출하면
정확한 풀이라고 잘 나왔습니다.
#1361번
저는 이 문제를 보고 이런 코드를 짜보았습니다. 역삼각형이 출력할 수 있도록 사용했던 for문을 작성하였고, 한 줄에 *이 2개씩 출력하므로, j는 2보다 작거나 같을 때까지 반복하는 반복문을 사용하였습니다.
이 코드를 제출하면
컴파일 에러라고 나왔습니다.
왜 나왔는지 천천히 보니 k를 변수 선언을 안 해주고 제출을 해서 에러가 나온 것 같습니다.
k를 선언해주고 다시 제출하면
정확한 풀이라고 잘 나왔습니다.
#1367번
이번에는 살짝 까다로운 평행사변형 모양으로 별을 찍는 문제입니다. 아까 정사각형을 출력할 수 있는 문제와 같이 한 줄에 a와 같을 때까지 반복하는 반복문을 사용하였고, 공백을 a-1보다 작거나 같을 때까지 반복하여 출력할 수 있도록 짜보았습니다.
이 코드를 제출하면
잘못된 풀이라고 나왔습니다!
k에 a를 대입하여 잘못된 풀이라고 나온 것 같아 k에 1을 대입하였습니다.
이 코드를 다시 제출하면
이번에는 표현 에러라고 나왔어요..
k는 a-1보다 작거나 같을 때가 아닌 k는 a-i보다 같거나 작을 때까지 반복하는 반복문을 사용해야 했었더라고요...
그래서 수정하여 제출을 눌렀습니다.
정확한 풀이라고 잘 나왔습니다.
#1368번
이번 문제는 정말 까다로운 문제였습니다. for문도 사용하지만 그전에 먼저 if문을 사용하여 왼쪽 아래에 공백을 둘 것인지 오른쪽 아래에 공백을 둘 것인지 결정하고, 1367번 문제와 같이 평행사변형을 만들 수 있는 코드를 짜보았습니다. R이라고 적으면 오른쪽 아래에 공백을 출력하도록 하고 그 외에는 왼쪽 아래에 공백을 출력하도록 하였습니다.
이 코드를 제출하면
표현 에러라고 나왔네요...
else문 안에 있는 for문 안에 있는 k는 2가 아닌 1로 대입을 하여 표현 에러가 나온 것 같습니다. 그래서 k는 2로 대입하여 코드를 제출했습니다.
정확한 풀이라고 나왔습니다!
이상으로 1081~1084/1351~1361/1367~1368번 문제풀이를 마치겠습니다.
보시느라 수고하셨습니다.